ResizeDlg.cpp
上传用户:sdnygcb
上传日期:2007-01-02
资源大小:18k
文件大小:3k
源码类别:

PropertySheet

开发平台:

Visual C++

  1. // ResizeDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Resize.h"
  5. #include "ResizeDlg.h"
  6. #include "ResizablePropertySheet.h"
  7. #include "Page1.h"
  8. #include "Page2.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CResizeDlg dialog
  16. CResizeDlg::CResizeDlg(CWnd* pParent /*=NULL*/)
  17. : CDialog(CResizeDlg::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(CResizeDlg)
  20. // NOTE: the ClassWizard will add member initialization here
  21. //}}AFX_DATA_INIT
  22. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  23. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  24. }
  25. void CResizeDlg::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(CResizeDlg)
  29. // NOTE: the ClassWizard will add DDX and DDV calls here
  30. //}}AFX_DATA_MAP
  31. }
  32. BEGIN_MESSAGE_MAP(CResizeDlg, CDialog)
  33. //{{AFX_MSG_MAP(CResizeDlg)
  34. ON_WM_PAINT()
  35. ON_WM_QUERYDRAGICON()
  36. ON_BN_CLICKED(IDC_WIZARD, OnWizard)
  37. ON_BN_CLICKED(IDC_PROPSHEET, OnPropSheet)
  38. //}}AFX_MSG_MAP
  39. END_MESSAGE_MAP()
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CResizeDlg message handlers
  42. BOOL CResizeDlg::OnInitDialog()
  43. {
  44. CDialog::OnInitDialog();
  45. // Set the icon for this dialog.  The framework does this automatically
  46. //  when the application's main window is not a dialog
  47. SetIcon(m_hIcon, TRUE); // Set big icon
  48. SetIcon(m_hIcon, FALSE); // Set small icon
  49. // TODO: Add extra initialization here
  50. return TRUE;  // return TRUE  unless you set the focus to a control
  51. }
  52. // If you add a minimize button to your dialog, you will need the code below
  53. //  to draw the icon.  For MFC applications using the document/view model,
  54. //  this is automatically done for you by the framework.
  55. void CResizeDlg::OnPaint() 
  56. {
  57. if (IsIconic())
  58. {
  59. CPaintDC dc(this); // device context for painting
  60. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  61. // Center icon in client rectangle
  62. int cxIcon = GetSystemMetrics(SM_CXICON);
  63. int cyIcon = GetSystemMetrics(SM_CYICON);
  64. CRect rect;
  65. GetClientRect(&rect);
  66. int x = (rect.Width() - cxIcon + 1) / 2;
  67. int y = (rect.Height() - cyIcon + 1) / 2;
  68. // Draw the icon
  69. dc.DrawIcon(x, y, m_hIcon);
  70. }
  71. else
  72. {
  73. CDialog::OnPaint();
  74. }
  75. }
  76. // The system calls this to obtain the cursor to display while the user drags
  77. //  the minimized window.
  78. HCURSOR CResizeDlg::OnQueryDragIcon()
  79. {
  80. return (HCURSOR) m_hIcon;
  81. }
  82. void CResizeDlg::OnWizard() 
  83. {
  84. CResizablePropertySheet sheet;
  85. CPage1 page1;
  86. CPage2 page2;
  87. sheet.SetWizardMode();
  88. sheet.AddPage(&page1);
  89. sheet.AddPage(&page2);
  90. sheet.DoModal();
  91. }
  92. void CResizeDlg::OnPropSheet() 
  93. {
  94. CResizablePropertySheet sheet;
  95. CPage1 page1;
  96. CPage2 page2;
  97. sheet.AddPage(&page1);
  98. sheet.AddPage(&page2);
  99. sheet.DoModal();
  100. }