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