home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 December / PCWKCD1296.iso / vjplusb / msdev / bin / ide / mfcapwz.dll / TEMPLATE / DIALOG.CPP < prev    next >
C/C++ Source or Header  |  1996-07-12  |  5KB  |  203 lines

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