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

编辑框

开发平台:

Visual C++

  1. //
  2. // App.cpp : Defines the class behaviors for the application.
  3. //
  4. //@tabs=4
  5. #include "Stdafx.h"
  6. #include "resource.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. // testing dialog functions
  13. // this way no header need be included
  14. extern int TestSliders( CWnd* pParent );
  15. extern int TestEditBoxes( CWnd* pParent );
  16. extern int TestButtons( CWnd* pParent );
  17. ///////////////////////////////////////////////////////////
  18. // CAppDlg - the application dialog
  19. class CAppDlg : public CDialog
  20. {
  21. private:
  22. // Construction
  23. public:
  24. CAppDlg(CWnd* pParent = NULL); // standard constructor
  25. // Dialog Data
  26. //{{AFX_DATA(CAppDlg)
  27. enum { IDD = IDD_APP_DLG };
  28. //}}AFX_DATA
  29. //{{AFX_VIRTUAL(CAppDlg)
  30. protected:
  31. virtual void DoDataExchange(CDataExchange* pDX);
  32. //}}AFX_VIRTUAL
  33. // Implementation
  34. protected:
  35. HICON m_hIcon;
  36. // Generated message map functions
  37. //{{AFX_MSG(CAppDlg)
  38. virtual BOOL OnInitDialog();
  39. afx_msg void OnPaint();
  40. afx_msg HCURSOR OnQueryDragIcon();
  41. afx_msg void OnTestButtons();
  42. afx_msg void OnTestEditBoxes();
  43. afx_msg void OnTestSliders();
  44. //}}AFX_MSG
  45. DECLARE_MESSAGE_MAP()
  46. };
  47. CAppDlg::CAppDlg(CWnd* pParent /*=NULL*/)
  48. : CDialog(CAppDlg::IDD, pParent)
  49. {
  50. //{{AFX_DATA_INIT(CAppDlg)
  51. //}}AFX_DATA_INIT
  52. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  53. }
  54. void CAppDlg::DoDataExchange(CDataExchange* pDX)
  55. {
  56. CDialog::DoDataExchange(pDX);
  57. //{{AFX_DATA_MAP(CAppDlg)
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(CAppDlg, CDialog)
  61. //{{AFX_MSG_MAP(CAppDlg)
  62. ON_WM_PAINT()
  63. ON_WM_QUERYDRAGICON()
  64. ON_BN_CLICKED(IDC_TEST_BUTTON, OnTestButtons)
  65. ON_BN_CLICKED(IDC_TEST_EDIT, OnTestEditBoxes)
  66. ON_BN_CLICKED(IDC_TEST_SLIDERS, OnTestSliders)
  67. //}}AFX_MSG_MAP
  68. END_MESSAGE_MAP()
  69. // CAppDlg message handlers
  70. BOOL CAppDlg::OnInitDialog()
  71. {
  72. CDialog::OnInitDialog();
  73. SetIcon(m_hIcon, TRUE); // Set big icon
  74. SetIcon(m_hIcon, FALSE); // Set small icon
  75. return TRUE;
  76. }
  77. HCURSOR CAppDlg::OnQueryDragIcon()
  78. {
  79. return (HCURSOR) m_hIcon;
  80. }
  81. void CAppDlg::OnPaint() 
  82. {
  83. if( IsIconic() ) // must draw ourselves since this is a dialog
  84. {
  85. CPaintDC dc(this); // device context for painting
  86. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  87. // Center icon in client rectangle
  88. int cxIcon = GetSystemMetrics(SM_CXICON);
  89. int cyIcon = GetSystemMetrics(SM_CYICON);
  90. CRect rect;
  91. GetClientRect(&rect);
  92. int x = (rect.Width() - cxIcon + 1) / 2;
  93. int y = (rect.Height() - cyIcon + 1) / 2;
  94. // Draw the icon
  95. dc.DrawIcon(x, y, m_hIcon);
  96. }
  97. else
  98. {
  99. CDialog::OnPaint();
  100. }
  101. }
  102. ///////////////////////////////////////////////////////////
  103. // functions to invoke the testing dialogs
  104. void CAppDlg::OnTestButtons() 
  105. {
  106. TestButtons( this );
  107. }
  108. void CAppDlg::OnTestEditBoxes() 
  109. {
  110. TestEditBoxes( this );
  111. }
  112. void CAppDlg::OnTestSliders() 
  113. {
  114. TestSliders( this );
  115. }
  116. ///////////////////////////////////////////////////////////
  117. // CTestApp - the application class
  118. class CTestApp : public CWinApp
  119. {
  120. public:
  121. CTestApp();
  122. // Overrides
  123. //{{AFX_VIRTUAL(CTestApp)
  124. public:
  125. virtual BOOL InitInstance();
  126. //}}AFX_VIRTUAL
  127. // Implementation
  128. //{{AFX_MSG(CTestApp)
  129. //}}AFX_MSG
  130. DECLARE_MESSAGE_MAP()
  131. };
  132. BEGIN_MESSAGE_MAP(CTestApp, CWinApp)
  133. //{{AFX_MSG_MAP(CTestApp)
  134. //}}AFX_MSG
  135. END_MESSAGE_MAP()
  136. // CTestApp construction
  137. CTestApp::CTestApp()
  138. {
  139. }
  140. // CTestApp initialization
  141. BOOL CTestApp::InitInstance()
  142. {
  143. #ifdef _AFXDLL
  144. Enable3dControls(); // when using MFC in a shared DLL
  145. #else
  146. Enable3dControlsStatic(); // when linking to MFC statically
  147. #endif
  148. CAppDlg dlg;
  149. m_pMainWnd = &dlg;
  150. int nResponse = dlg.DoModal();
  151. return FALSE;
  152. }
  153. CTestApp theApp; // instantiate the app object