Dialogs.cpp
上传用户:longsheng
上传日期:2007-01-02
资源大小:17k
文件大小:8k
源码类别:

编辑框

开发平台:

Visual C++

  1. //
  2. // Dialogs.cpp : implementation of testing dialogs
  3. //
  4. //@tabs=4
  5. #include "StdAfx.h"
  6. #include "resource.h"
  7. #include "SmartEdit.h"
  8. #include "Sliders.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CTestButtonDlg dialog
  16. #define BUTTON_COUNT 4
  17. class CTestButtonDlg : public CDialog
  18. {
  19. private:
  20. BOOL m_bEnabled;
  21. // Construction
  22. public:
  23. CTestButtonDlg(CWnd* pParent = NULL);   // standard constructor
  24. CBitmapButton Buttons[BUTTON_COUNT];
  25. // Dialog Data
  26. //{{AFX_DATA(CTestButtonDlg)
  27. enum { IDD = IDD_BUTTON_DLG };
  28. //}}AFX_DATA
  29. // Overrides
  30. //{{AFX_VIRTUAL(CTestButtonDlg)
  31. protected:
  32. virtual void DoDataExchange(CDataExchange* pDX);
  33. //}}AFX_VIRTUAL
  34. // Implementation
  35. protected:
  36. // Generated message map functions
  37. //{{AFX_MSG(CTestButtonDlg)
  38. afx_msg void OnExit();
  39. afx_msg void OnHelp();
  40. virtual void OnCancel();
  41. virtual void OnOK();
  42. virtual BOOL OnInitDialog();
  43. afx_msg void OnControl();
  44. //}}AFX_MSG
  45. DECLARE_MESSAGE_MAP()
  46. };
  47. CTestButtonDlg::CTestButtonDlg(CWnd* pParent /*=NULL*/)
  48. : CDialog(CTestButtonDlg::IDD, pParent)
  49. {
  50. m_bEnabled = FALSE; // it will be toggled so start off false
  51. //{{AFX_DATA_INIT(CTestButtonDlg)
  52. //}}AFX_DATA_INIT
  53. }
  54. void CTestButtonDlg::DoDataExchange(CDataExchange* pDX)
  55. {
  56. CDialog::DoDataExchange(pDX);
  57. //{{AFX_DATA_MAP(CTestButtonDlg)
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(CTestButtonDlg, CDialog)
  61. //{{AFX_MSG_MAP(CTestButtonDlg)
  62. ON_BN_CLICKED(IDHELP, OnHelp)
  63. ON_BN_CLICKED(IDC_EXIT, OnExit)
  64. ON_BN_CLICKED(IDC_CONTROL, OnControl)
  65. //}}AFX_MSG_MAP
  66. END_MESSAGE_MAP()
  67. void CTestButtonDlg::OnCancel() 
  68. {
  69. // swallow the button click
  70. }
  71. void CTestButtonDlg::OnOK() 
  72. {
  73. // swallow the button click
  74. }
  75. void CTestButtonDlg::OnHelp() 
  76. {
  77. // swallow the button click
  78. }
  79. void CTestButtonDlg::OnExit() 
  80. {
  81. EndDialog( IDOK ); // end the dialog
  82. }
  83. void CTestButtonDlg::OnControl() 
  84. {
  85. // toggle the enable flag
  86. char * text;
  87. int state;
  88. if( m_bEnabled )
  89. {
  90. state = FALSE;
  91. text = "Enable";
  92. }
  93. else
  94. {
  95. state = TRUE;
  96. text = "Disable";
  97. }
  98. SetDlgItemText( IDC_CONTROL, text );
  99. for( int x = 0; x < BUTTON_COUNT; x += 1 )
  100. Buttons[x].EnableWindow( state );
  101. m_bEnabled = state;
  102. }
  103. BOOL CTestButtonDlg::OnInitDialog() 
  104. {
  105. CDialog::OnInitDialog();
  106. // load bitmaps for all the bitmap buttons
  107. VERIFY( Buttons[0].AutoLoad( IDOK, this ) );
  108. VERIFY( Buttons[1].AutoLoad( IDCANCEL, this ) );
  109. VERIFY( Buttons[2].AutoLoad( IDHELP, this ) );
  110. VERIFY( Buttons[3].AutoLoad( ID_APPLY_NOW, this ) );
  111. OnControl(); // set the button states
  112. return TRUE;
  113. }
  114. /////////////////////////////////////////////////////////////////////////////
  115. // CTestEditDlg dialog
  116. class CTestEditDlg : public CDialog
  117. {
  118. // Construction
  119. public:
  120. CTestEditDlg(CWnd* pParent = NULL);   // standard constructor
  121. CBitmapButton Buttons[2];
  122. // Dialog Data
  123. //{{AFX_DATA(CTestEditDlg)
  124. enum { IDD = IDD_EDIT_DLG };
  125. CSmartEdit m_Edit1;
  126. CSmartEdit m_Edit2;
  127. CSmartEdit m_Edit3;
  128. CSmartEdit m_Edit4;
  129. CSmartEdit m_Edit5;
  130. //}}AFX_DATA
  131. // Overrides
  132. //{{AFX_VIRTUAL(CTestEditDlg)
  133. protected:
  134. virtual void DoDataExchange(CDataExchange* pDX);
  135. //}}AFX_VIRTUAL
  136. // Implementation
  137. protected:
  138. //{{AFX_MSG(CTestEditDlg)
  139. virtual BOOL OnInitDialog();
  140. //}}AFX_MSG
  141. DECLARE_MESSAGE_MAP()
  142. };
  143. CTestEditDlg::CTestEditDlg(CWnd* pParent /*=NULL*/)
  144. : CDialog(CTestEditDlg::IDD, pParent)
  145. {
  146. //{{AFX_DATA_INIT(CTestEditDlg)
  147. //}}AFX_DATA_INIT
  148. }
  149. void CTestEditDlg::DoDataExchange(CDataExchange* pDX)
  150. {
  151. CDialog::DoDataExchange(pDX);
  152. //{{AFX_DATA_MAP(CTestEditDlg)
  153. DDX_Control(pDX, IDC_EDIT1, m_Edit1);
  154. DDX_Control(pDX, IDC_EDIT2, m_Edit2);
  155. DDX_Control(pDX, IDC_EDIT3, m_Edit3);
  156. DDX_Control(pDX, IDC_EDIT4, m_Edit4);
  157. DDX_Control(pDX, IDC_EDIT5, m_Edit5);
  158. //}}AFX_DATA_MAP
  159. }
  160. BEGIN_MESSAGE_MAP(CTestEditDlg, CDialog)
  161. //{{AFX_MSG_MAP(CTestEditDlg)
  162. //}}AFX_MSG_MAP
  163. END_MESSAGE_MAP()
  164. BOOL CTestEditDlg::OnInitDialog() 
  165. {
  166. CDialog::OnInitDialog();
  167. VERIFY( Buttons[0].AutoLoad( IDOK, this ) );
  168. VERIFY( Buttons[1].AutoLoad( IDCANCEL, this ) );
  169. m_Edit1.SetParseType( SES_LETTERS ); 
  170. m_Edit2.SetParseType( SES_NUMBERS | SES_SIGNED ); 
  171. m_Edit3.SetParseType( SES_LETTERS | SES_NUMBERS | SES_UNDERSCORE ); 
  172. m_Edit4.SetParseType( SES_FLOATINGPT ); 
  173. m_Edit5.SetParseType( SES_ALL ); 
  174. return TRUE;
  175. }
  176. /////////////////////////////////////////////////////////////////////////////
  177. // CTestSlidersDlg dialog
  178. class CTestSlidersDlg : public CDialog
  179. {
  180. // Construction
  181. public:
  182. CTestSlidersDlg(CWnd* pParent = NULL);   // standard constructor
  183. CBitmapButton Buttons[BUTTON_COUNT];
  184. // Dialog Data
  185. //{{AFX_DATA(CTestSlidersDlg)
  186. enum { IDD = IDD_SLIDE_DLG };
  187. CSmartEdit m_Edit1;
  188. CSmartEdit m_Edit2;
  189. CSmartEdit m_Edit3;
  190. CLinkSlider m_Slider1;
  191. CLinkSlider m_Slider2;
  192. CLinkSlider m_Slider3;
  193. //}}AFX_DATA
  194. // Overrides
  195. //{{AFX_VIRTUAL(CTestSlidersDlg)
  196. protected:
  197. virtual void DoDataExchange(CDataExchange* pDX);
  198. //}}AFX_VIRTUAL
  199. // Implementation
  200. protected:
  201. //{{AFX_MSG(CTestSlidersDlg)
  202. virtual BOOL OnInitDialog();
  203. afx_msg void OnHelp();
  204. afx_msg void OnApplyNow();
  205. //}}AFX_MSG
  206. DECLARE_MESSAGE_MAP()
  207. };
  208. CTestSlidersDlg::CTestSlidersDlg(CWnd* pParent /*=NULL*/)
  209. : CDialog(CTestSlidersDlg::IDD, pParent)
  210. {
  211. //{{AFX_DATA_INIT(CTestSlidersDlg)
  212. //}}AFX_DATA_INIT
  213. }
  214. void CTestSlidersDlg::DoDataExchange(CDataExchange* pDX)
  215. {
  216. CDialog::DoDataExchange(pDX);
  217. //{{AFX_DATA_MAP(CTestSlidersDlg)
  218. DDX_Control(pDX, IDC_EDIT1, m_Edit1);
  219. DDX_Control(pDX, IDC_EDIT2, m_Edit2);
  220. DDX_Control(pDX, IDC_EDIT3, m_Edit3);
  221. DDX_Control(pDX, IDC_SLIDER1, m_Slider1);
  222. DDX_Control(pDX, IDC_SLIDER2, m_Slider2);
  223. DDX_Control(pDX, IDC_SLIDER3, m_Slider3);
  224. //}}AFX_DATA_MAP
  225. }
  226. BEGIN_MESSAGE_MAP(CTestSlidersDlg, CDialog)
  227. //{{AFX_MSG_MAP(CTestSlidersDlg)
  228. ON_BN_CLICKED(IDHELP, OnHelp)
  229. ON_BN_CLICKED(ID_APPLY_NOW, OnApplyNow)
  230. //}}AFX_MSG_MAP
  231. END_MESSAGE_MAP()
  232. BOOL CTestSlidersDlg::OnInitDialog() 
  233. {
  234. CDialog::OnInitDialog();
  235. // load bitmaps for all the bitmap buttons
  236. VERIFY( Buttons[0].AutoLoad( IDOK, this ) );
  237. VERIFY( Buttons[1].AutoLoad( IDCANCEL, this ) );
  238. VERIFY( Buttons[2].AutoLoad( IDHELP, this ) );
  239. VERIFY( Buttons[3].AutoLoad( ID_APPLY_NOW, this ) );
  240. // setup first slider-edit box - integer
  241. m_Edit1.SetSlideLink( this, IDC_SLIDER1 );
  242. m_Edit1.SetParams( -100, 100, 10 );
  243. m_Edit1.SetValue( 0 );
  244. // setup second slider-edit box - integer
  245. m_Edit2.SetSlideLink( this, IDC_SLIDER2 );
  246. m_Edit2.SetParams( 0, 100, 10 );
  247. m_Edit2.SetValue( 50 );
  248. // setup third slider-edit box - floating point
  249. m_Edit3.SetSlideLink( this, IDC_SLIDER3 );
  250. m_Edit3.SetParams( 0.0, 10.0, 10, "%6.3f" );
  251. m_Edit3.SetValue( 2.0 );
  252. return TRUE;
  253. }
  254. void CTestSlidersDlg::OnHelp()
  255. {
  256. MessageBox( "No Help Is Available Now", "Sorry" );
  257. }
  258. void CTestSlidersDlg::OnApplyNow()
  259. {
  260. // swallow the click
  261. }
  262. /////////////////////////////////////////////////////////////////////////////
  263. // invoke the testing dialogs
  264. // these functions are separated like this so that the app doesn't
  265. // have to "really" know about these dialogs and these dialogs
  266. // don't have to "really" know about the app : no includes needed.
  267. int TestSliders( CWnd* pParent )
  268. {
  269. CTestSlidersDlg dlg( pParent );
  270. return dlg.DoModal();
  271. }
  272. int TestEditBoxes( CWnd* pParent )
  273. {
  274. CTestEditDlg dlg( pParent );
  275. return dlg.DoModal();
  276. }
  277. int TestButtons( CWnd* pParent )
  278. {
  279. CTestButtonDlg dlg( pParent );
  280. return dlg.DoModal();
  281. }