HighColorTabDlg.cpp
上传用户:ahlaser
上传日期:2020-09-06
资源大小:116k
文件大小:5k
源码类别:

Static控件

开发平台:

Visual C++

  1. // HighColorTabDlg.cpp : implementation file
  2. //
  3. ///////////////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "HighColorTab.h"
  6. #include "HighColorTabDlg.h"
  7. #include "PageIcon.h"
  8. #include "HighColorPropertySheet.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CAboutDlg dialog used for App About
  16. class CAboutDlg : public CDialog
  17. {
  18. public:
  19. CAboutDlg();
  20. // Dialog Data
  21. //{{AFX_DATA(CAboutDlg)
  22. enum { IDD = IDD_ABOUTBOX };
  23. //}}AFX_DATA
  24. // ClassWizard generated virtual function overrides
  25. //{{AFX_VIRTUAL(CAboutDlg)
  26. protected:
  27. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  28. //}}AFX_VIRTUAL
  29. // Implementation
  30. protected:
  31. //{{AFX_MSG(CAboutDlg)
  32. //}}AFX_MSG
  33. DECLARE_MESSAGE_MAP()
  34. };
  35. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  36. {
  37. //{{AFX_DATA_INIT(CAboutDlg)
  38. //}}AFX_DATA_INIT
  39. }
  40. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  41. {
  42. CDialog::DoDataExchange(pDX);
  43. //{{AFX_DATA_MAP(CAboutDlg)
  44. //}}AFX_DATA_MAP
  45. }
  46. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  47. //{{AFX_MSG_MAP(CAboutDlg)
  48. //}}AFX_MSG_MAP
  49. END_MESSAGE_MAP()
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CHighColorTabDlg dialog
  52. CHighColorTabDlg::CHighColorTabDlg(CWnd* pParent /*=NULL*/)
  53. : CDialog(CHighColorTabDlg::IDD, pParent)
  54. {
  55. //{{AFX_DATA_INIT(CHighColorTabDlg)
  56. //}}AFX_DATA_INIT
  57. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  58. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  59. }
  60. void CHighColorTabDlg::DoDataExchange(CDataExchange* pDX)
  61. {
  62. CDialog::DoDataExchange(pDX);
  63. //{{AFX_DATA_MAP(CHighColorTabDlg)
  64. //}}AFX_DATA_MAP
  65. }
  66. BEGIN_MESSAGE_MAP(CHighColorTabDlg, CDialog)
  67. //{{AFX_MSG_MAP(CHighColorTabDlg)
  68. ON_WM_SYSCOMMAND()
  69. ON_WM_PAINT()
  70. ON_WM_QUERYDRAGICON()
  71. ON_BN_CLICKED(IDC_BTN_REGULAR, OnDisplayRegular)
  72. ON_BN_CLICKED(IDC_BTN_HIGH_COLOR, OnDisplayHighColor)
  73. //}}AFX_MSG_MAP
  74. END_MESSAGE_MAP()
  75. /////////////////////////////////////////////////////////////////////////////
  76. // CHighColorTabDlg message handlers
  77. BOOL CHighColorTabDlg::OnInitDialog()
  78. {
  79. CDialog::OnInitDialog();
  80. // Add "About..." menu item to system menu.
  81. // IDM_ABOUTBOX must be in the system command range.
  82. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  83. ASSERT(IDM_ABOUTBOX < 0xF000);
  84. CMenu* pSysMenu = GetSystemMenu(FALSE);
  85. if (pSysMenu != NULL)
  86. {
  87. CString strAboutMenu;
  88. strAboutMenu.LoadString(IDS_ABOUTBOX);
  89. if (!strAboutMenu.IsEmpty())
  90. {
  91. pSysMenu->AppendMenu(MF_SEPARATOR);
  92. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  93. }
  94. }
  95. // Set the icon for this dialog.  The framework does this automatically
  96. //  when the application's main window is not a dialog
  97. SetIcon(m_hIcon, TRUE); // Set big icon
  98. SetIcon(m_hIcon, FALSE); // Set small icon
  99. return TRUE;  // return TRUE  unless you set the focus to a control
  100. }
  101. void CHighColorTabDlg::OnSysCommand(UINT nID, LPARAM lParam)
  102. {
  103. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  104. {
  105. CAboutDlg dlgAbout;
  106. dlgAbout.DoModal();
  107. }
  108. else
  109. {
  110. CDialog::OnSysCommand(nID, lParam);
  111. }
  112. }
  113. // If you add a minimize button to your dialog, you will need the code below
  114. //  to draw the icon.  For MFC applications using the document/view model,
  115. //  this is automatically done for you by the framework.
  116. void CHighColorTabDlg::OnPaint() 
  117. {
  118. if (IsIconic())
  119. {
  120. CPaintDC dc(this); // device context for painting
  121. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  122. // Center icon in client rectangle
  123. int cxIcon = GetSystemMetrics(SM_CXICON);
  124. int cyIcon = GetSystemMetrics(SM_CYICON);
  125. CRect rect;
  126. GetClientRect(&rect);
  127. int x = (rect.Width() - cxIcon + 1) / 2;
  128. int y = (rect.Height() - cyIcon + 1) / 2;
  129. // Draw the icon
  130. dc.DrawIcon(x, y, m_hIcon);
  131. }
  132. else
  133. {
  134. CDialog::OnPaint();
  135. }
  136. }
  137. // The system calls this to obtain the cursor to display while the user drags
  138. //  the minimized window.
  139. HCURSOR CHighColorTabDlg::OnQueryDragIcon()
  140. {
  141. return (HCURSOR) m_hIcon;
  142. }
  143. void CHighColorTabDlg::OnDisplayRegular() 
  144. {
  145.   CPageIcon page_1( "Page 1", IDI_ALARM_CLOCK );
  146.   CPageIcon page_2( "Page 2", IDI_BATTERY );
  147.   CPageIcon page_3( "Page 3", IDI_GREEN_BOOK );
  148.   CPageIcon page_4( "Page 4", IDI_WORKSTATION );
  149.   CPageIcon page_5( "Page 5", NULL );
  150.   CPropertySheet sheet( "Regular" );
  151.   sheet.AddPage( &page_1 );
  152.   sheet.AddPage( &page_2 );
  153.   sheet.AddPage( &page_3 );
  154.   sheet.AddPage( &page_4 );
  155.   sheet.AddPage( &page_5 );
  156.   sheet.DoModal();
  157. }
  158. void CHighColorTabDlg::OnDisplayHighColor() 
  159. {
  160.   CPageIcon page_1( "Page 1", IDI_ALARM_CLOCK );
  161.   CPageIcon page_2( "Page 2", IDI_BATTERY );
  162.   CPageIcon page_3( "Page 3", IDI_GREEN_BOOK );
  163.   CPageIcon page_4( "Page 4", IDI_WORKSTATION );
  164.   CPageIcon page_5( "Page 5", NULL );
  165.   CHighColorPropertySheet sheet( "High Color" );
  166.   sheet.AddPage( &page_1 );
  167.   sheet.AddPage( &page_2 );
  168.   sheet.AddPage( &page_3 );
  169.   sheet.AddPage( &page_4 );
  170.   sheet.AddPage( &page_5 );
  171.   sheet.DoModal();
  172. }