InputBox.cpp
上传用户:hmc_gdtv
上传日期:2013-08-04
资源大小:798k
文件大小:7k
源码类别:

Windows Mobile

开发平台:

Visual C++

  1. /*
  2.  * Copyright (c) 2001,2002,2003 Mike Matsnev.  All Rights Reserved.
  3.  *
  4.  * Redistribution and use in source and binary forms, with or without
  5.  * modification, are permitted provided that the following conditions
  6.  * are met:
  7.  *
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice immediately at the beginning of the file, without modification,
  10.  *    this list of conditions, and the following disclaimer.
  11.  * 2. Redistributions in binary form must reproduce the above copyright
  12.  *    notice, this list of conditions and the following disclaimer in the
  13.  *    documentation and/or other materials provided with the distribution.
  14.  * 3. Absolutely no warranty of function or purpose is made by the author
  15.  *    Mike Matsnev.
  16.  *
  17.  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  18.  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  19.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  20.  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  21.  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22.  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  23.  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  24.  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26.  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27.  * 
  28.  * $Id: InputBox.cpp,v 1.15.2.4 2004/11/01 11:15:10 mike Exp $
  29.  * 
  30.  */
  31. #include <afxwin.h>
  32. #include <afxext.h>
  33. #include "resource.h"
  34. #include "InputBox.h"
  35. #include "config.h"
  36. #ifdef _DEBUG
  37. #define new DEBUG_NEW
  38. #undef THIS_FILE
  39. static char THIS_FILE[] = __FILE__;
  40. #endif
  41. /////////////////////////////////////////////////////////////////////////////
  42. // InputBox dialog
  43. InputBox::InputBox(const CString& prompt,const CString& title,
  44. CWnd* pParent /*=NULL*/)
  45.   : CDialog(InputBox::IDD, pParent),
  46.     m_prompt(prompt), m_title(title)
  47. {
  48.   //{{AFX_DATA_INIT(InputBox)
  49.   m_str = _T("");
  50.   //}}AFX_DATA_INIT
  51. }
  52. void InputBox::DoDataExchange(CDataExchange* pDX)
  53. {
  54.   CDialog::DoDataExchange(pDX);
  55.   //{{AFX_DATA_MAP(InputBox)
  56.   DDX_Text(pDX, IDC_WORD, m_str);
  57.   //}}AFX_DATA_MAP
  58. }
  59. BEGIN_MESSAGE_MAP(InputBox, CDialog)
  60. //{{AFX_MSG_MAP(InputBox)
  61. ON_EN_SETFOCUS(IDC_WORD,OnWordSetFocus)
  62. ON_EN_KILLFOCUS(IDC_WORD,OnWordKillFocus)
  63. //}}AFX_MSG_MAP
  64. #if POCKETPC
  65. ON_WM_SETTINGCHANGE()
  66. #endif
  67. END_MESSAGE_MAP()
  68. /////////////////////////////////////////////////////////////////////////////
  69. // InputBox message handlers
  70. bool GetUserInput(const CString& prompt,const CString& title,
  71.      CString& str,CWnd *parent)
  72. {
  73.   InputBox    box(prompt,title,parent);
  74.   box.m_str=str;;
  75.   if (box.DoModal()==IDOK) {
  76.     str=box.m_str;
  77.     return true;
  78.   }
  79.   return false;
  80. }
  81. BOOL InputBox::OnInitDialog() 
  82. {
  83.   CDialog::OnInitDialog();
  84.   SetDlgItemText(IDC_LABEL,m_prompt);
  85.   SetWindowText(m_title);
  86. #if POCKETPC
  87.   // resize input to full width
  88.   RECT rcC,rcW;
  89.   GetClientRect(&rcC);
  90.   GetDlgItem(IDC_WORD)->GetWindowRect(&rcW);
  91.   ScreenToClient(&rcW);
  92.   rcW.right = rcC.right - (rcW.left - rcC.left);
  93.   GetDlgItem(IDC_WORD)->MoveWindow(&rcW);
  94. #endif
  95.   return TRUE;
  96. }
  97. void InputBox::OnWordSetFocus() {
  98. #if POCKETPC
  99.   HWND hWnd;
  100.   GetDlgItem(IDC_WORD,&hWnd);
  101.   if (hWnd)
  102.     SHSipPreference(hWnd,SIP_UP);
  103. #endif
  104. }
  105. void InputBox::OnWordKillFocus() {
  106. #if POCKETPC
  107.   HWND hWnd;
  108.   GetDlgItem(IDC_WORD,&hWnd);
  109.   if (hWnd)
  110.     SHSipPreference(hWnd,SIP_DOWN);
  111. #endif
  112. }
  113. #if POCKETPC
  114. void InputBox::OnSettingChange(UINT uFlags,LPCTSTR lpszSection) {
  115.   CWnd::OnSettingChange(uFlags,lpszSection);
  116. }
  117. #endif
  118. /////////////////////////////////////////////////////////////////////////////
  119. // CAddBmDialog dialog
  120. CAddBmDialog::CAddBmDialog(CWnd* pParent /*=NULL*/)
  121. : CDialog(CAddBmDialog::IDD, pParent)
  122. {
  123.   //{{AFX_DATA_INIT(CAddBmDialog)
  124. // NOTE: the ClassWizard will add member initialization here
  125.   //}}AFX_DATA_INIT
  126. }
  127. void CAddBmDialog::DoDataExchange(CDataExchange* pDX)
  128. {
  129.   CDialog::DoDataExchange(pDX);
  130.   //{{AFX_DATA_MAP(CAddBmDialog)
  131.   DDX_Text(pDX,IDC_BMKEDIT,m_text);
  132.   //}}AFX_DATA_MAP
  133. }
  134. BEGIN_MESSAGE_MAP(CAddBmDialog, CDialog)
  135. //{{AFX_MSG_MAP(CAddBmDialog)
  136. ON_EN_SETFOCUS(IDC_BMKEDIT, OnSetfocusBmkedit)
  137. ON_EN_KILLFOCUS(IDC_BMKEDIT, OnKillfocusBmkedit)
  138. ON_WM_SIZE()
  139. //}}AFX_MSG_MAP
  140. END_MESSAGE_MAP()
  141. /////////////////////////////////////////////////////////////////////////////
  142. // CAddBmDialog message handlers
  143. void CAddBmDialog::OnSetfocusBmkedit() {
  144. #if POCKETPC
  145.   HWND hWnd;
  146.   GetDlgItem(IDC_BMKEDIT,&hWnd);
  147.   if (hWnd)
  148.     SHSipPreference(hWnd,SIP_UP);
  149. #endif
  150. }
  151. void CAddBmDialog::OnKillfocusBmkedit() {
  152. #if POCKETPC
  153.   HWND hWnd;
  154.   GetDlgItem(IDC_BMKEDIT,&hWnd);
  155.   if (hWnd)
  156.     SHSipPreference(hWnd,SIP_DOWN);
  157. #endif
  158. }
  159. void CAddBmDialog::OnSize(UINT nType, int cx, int cy) 
  160. {
  161.   CDialog::OnSize(nType, cx, cy);
  162.   RECT rc;
  163.   GetClientRect(&rc);
  164.   HWND   hWnd;
  165.   GetDlgItem(IDC_BMKEDIT,&hWnd);
  166.   if (hWnd)
  167.     ::SetWindowPos(hWnd,NULL,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,SWP_NOZORDER|SWP_NOACTIVATE);
  168. }
  169. /////////////////////////////////////////////////////////////////////////////
  170. // CFindDlg dialog
  171. CFindDlg::CFindDlg(CWnd* pParent /*=NULL*/)
  172. : CDialog(CFindDlg::IDD, pParent)
  173. {
  174.   //{{AFX_DATA_INIT(CFindDlg)
  175. // NOTE: the ClassWizard will add member initialization here
  176.   m_matchcase=0;
  177.   //}}AFX_DATA_INIT
  178. }
  179. void CFindDlg::DoDataExchange(CDataExchange* pDX)
  180. {
  181.   CDialog::DoDataExchange(pDX);
  182.   //{{AFX_DATA_MAP(CFindDlg)
  183.   DDX_Text(pDX,IDC_FINDTEXT,m_text);
  184.   DDX_Check(pDX,IDC_MATCHCASE,m_matchcase);
  185.   //}}AFX_DATA_MAP
  186. }
  187. BEGIN_MESSAGE_MAP(CFindDlg, CDialog)
  188. //{{AFX_MSG_MAP(CFindDlg)
  189. ON_EN_SETFOCUS(IDC_FINDTEXT, OnSetfocusFindtext)
  190. ON_EN_KILLFOCUS(IDC_FINDTEXT, OnKillfocusFindtext)
  191. //}}AFX_MSG_MAP
  192. END_MESSAGE_MAP()
  193. /////////////////////////////////////////////////////////////////////////////
  194. // CFindDlg message handlers
  195. BOOL CAddBmDialog::OnInitDialog() 
  196. {
  197.   CDialog::OnInitDialog();
  198. #if POCKETPC
  199.   ((CCeCommandBar *)m_pWndEmptyCB)->LoadToolBar(cIDR_DIALOG);
  200. #endif
  201.   return TRUE;
  202. }
  203. void CFindDlg::OnSetfocusFindtext() {
  204. #if POCKETPC
  205.   HWND hWnd;
  206.   GetDlgItem(IDC_FINDTEXT,&hWnd);
  207.   if (hWnd)
  208.     SHSipPreference(hWnd,SIP_UP);
  209. #endif
  210. }
  211. void CFindDlg::OnKillfocusFindtext() {
  212. #if POCKETPC
  213.   HWND hWnd;
  214.   GetDlgItem(IDC_FINDTEXT,&hWnd);
  215.   if (hWnd)
  216.     SHSipPreference(hWnd,SIP_DOWN);
  217. #endif
  218. }
  219. BOOL CFindDlg::OnInitDialog() {
  220.   CDialog::OnInitDialog();
  221. #if POCKETPC
  222.   ((CCeCommandBar *)m_pWndEmptyCB)->LoadToolBar(cIDR_DIALOG);
  223. #endif
  224.   return TRUE;
  225. }