ce7a8f7e6f8c9590bcb8e01f4db20f815f544e26
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / DialogResizing / src / MyDialog.cpp
1 ///////////////////////////////////////\r
2 // MyDialog.cpp\r
3 \r
4 #include "stdafx.h"\r
5 #include "MyDialog.h"\r
6 #include "resource.h"\r
7 \r
8 \r
9 // Definitions for the CMyDialog class\r
10 CMyDialog::CMyDialog(UINT nResID, CWnd* pParent)\r
11         : CDialog(nResID, pParent)\r
12 {\r
13         m_hInstRichEdit = ::LoadLibrary(_T("RICHED32.DLL"));\r
14     if (!m_hInstRichEdit)\r
15                 ::MessageBox(NULL, _T("CMyDialog::CRichView  Failed to load RICHED32.DLL"), _T(""), MB_ICONWARNING);\r
16 }\r
17 \r
18 CMyDialog::~CMyDialog()\r
19 {\r
20         ::FreeLibrary(m_hInstRichEdit);\r
21 }\r
22 \r
23 INT_PTR CMyDialog::DialogProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
24 {\r
25         // Pass resizing messages on to the resizer\r
26         m_Resizer.HandleMessage(uMsg, wParam, lParam);\r
27 \r
28 //      switch (uMsg)\r
29 //      {\r
30                 //Additional messages to be handled go here\r
31 //      }\r
32 \r
33         // Pass unhandled messages on to parent DialogProc\r
34         return DialogProcDefault(uMsg, wParam, lParam);\r
35 }\r
36 \r
37 BOOL CMyDialog::OnCommand(WPARAM wParam, LPARAM lParam)\r
38 {\r
39         UNREFERENCED_PARAMETER(lParam);\r
40 \r
41         switch (LOWORD(wParam))\r
42     {\r
43         case IDC_BUTTON1:\r
44                 OnButton();\r
45                 return TRUE;\r
46         case IDC_RADIO1:\r
47                 OnRadio1();\r
48                 return TRUE;\r
49         case IDC_RADIO2:\r
50                 OnRadio2();\r
51                 return TRUE;\r
52         case IDC_RADIO3:\r
53                 OnRadio3();\r
54                 return TRUE;\r
55         case IDC_CHECK1:\r
56                 OnCheck1();\r
57                 return TRUE;\r
58         case IDC_CHECK2:\r
59                 OnCheck2();\r
60                 return TRUE;\r
61         case IDC_CHECK3:\r
62                 OnCheck3();\r
63                 return TRUE;\r
64     } //switch (LOWORD(wParam))\r
65 \r
66         return FALSE;\r
67 }\r
68 \r
69 BOOL CMyDialog::OnInitDialog()\r
70 {\r
71         // Set the Icon\r
72         SetIconLarge(IDW_MAIN);\r
73         SetIconSmall(IDW_MAIN);\r
74 \r
75         // Attach CWnd objects to the dialog items\r
76         AttachItem(IDC_BUTTON1, m_Button);\r
77         AttachItem(IDC_CHECK1,  m_CheckA);\r
78         AttachItem(IDC_CHECK2,  m_CheckB);\r
79         AttachItem(IDC_CHECK3,  m_CheckC);\r
80         AttachItem(IDC_RADIO1,  m_RadioA);\r
81         AttachItem(IDC_RADIO2,  m_RadioB);\r
82         AttachItem(IDC_RADIO3,  m_RadioC);\r
83         AttachItem(IDC_RICHEDIT1, m_RichEdit1);\r
84         AttachItem(IDC_RICHEDIT2, m_RichEdit2);\r
85 \r
86         // Put some text in the edit boxes\r
87         SetDlgItemText(IDC_RICHEDIT1, _T("Rich Edit Window"));\r
88         SetDlgItemText(IDC_RICHEDIT2, _T("Rich Edit Window"));\r
89 \r
90         // Initialize dialog resizing\r
91         m_Resizer.Initialize( this, CRect(0, 0, 300, 200) ); \r
92         m_Resizer.AddChild(m_RadioA,   topleft, 0);\r
93         m_Resizer.AddChild(m_RadioB,   topleft, 0);\r
94         m_Resizer.AddChild(m_RadioC,   topleft, 0);\r
95         m_Resizer.AddChild(m_Button,   topleft, 0);\r
96         m_Resizer.AddChild(m_CheckA,   bottomright, 0);\r
97         m_Resizer.AddChild(m_CheckB,   bottomright, 0);\r
98         m_Resizer.AddChild(m_CheckC,   bottomright, 0);\r
99         m_Resizer.AddChild(m_RichEdit1, topright, RD_STRETCH_WIDTH);\r
100         m_Resizer.AddChild(m_RichEdit2, bottomleft, RD_STRETCH_WIDTH| RD_STRETCH_HEIGHT);\r
101         \r
102         return true;\r
103 }\r
104 \r
105 void CMyDialog::OnOK()\r
106 {\r
107         MessageBox(_T("OK Button Pressed.  Program will exit now."), _T("Button"), MB_OK);\r
108         CDialog::OnOK();\r
109 }\r
110 \r
111 void CMyDialog::OnButton()\r
112 {\r
113         SetDlgItemText(IDC_STATIC3, _T("Button Pressed"));\r
114         TRACE(_T("Button Pressed\n"));\r
115 }\r
116 \r
117 void CMyDialog::OnCheck1()\r
118 {\r
119         SetDlgItemText(IDC_STATIC3, _T("Check Box 1"));\r
120         TRACE(_T("Check Box 1\n"));\r
121 }\r
122 \r
123 void CMyDialog::OnCheck2()\r
124 {\r
125         SetDlgItemText(IDC_STATIC3, _T("Check Box 2"));\r
126         TRACE(_T("Check Box 2\n"));\r
127 }\r
128 \r
129 void CMyDialog::OnCheck3()\r
130 {\r
131         SetDlgItemText(IDC_STATIC3, _T("Check Box 3"));\r
132         TRACE(_T("Check Box 3\n"));\r
133 }\r
134 \r
135 void CMyDialog::OnRadio1()\r
136 {\r
137         SetDlgItemText(IDC_STATIC3, _T("Radio 1"));\r
138         TRACE(_T("Radio 1\n"));\r
139 }\r
140 \r
141 void CMyDialog::OnRadio2()\r
142 {\r
143         SetDlgItemText(IDC_STATIC3, _T("Radio 2"));\r
144         TRACE(_T("Radio 2\n"));\r
145 }\r
146 \r
147 void CMyDialog::OnRadio3()\r
148 {\r
149         SetDlgItemText(IDC_STATIC3, _T("Radio 3"));\r
150         TRACE(_T("Radio 3\n"));\r
151 }\r
152 \r
153 BOOL CMyDialog::OnEraseBkgnd(CDC* pDC)\r
154 {\r
155         // Adding a gripper to a resizable dialog is a bit of a hack, but since it\r
156         // is often done, here is one method of doing it safely.\r
157 \r
158         // Draw the dialog's background manually\r
159         CRect rc = GetClientRect();\r
160         CClientDC dcClient(this);       \r
161         dcClient.SolidFill(GetSysColor(COLOR_3DFACE), rc);\r
162 \r
163         // draw size grip\r
164         if (rc.Width() > m_Resizer.GetMinRect().Width() && rc.Height() > m_Resizer.GetMinRect().Height())\r
165         {\r
166                 int size = GetSystemMetrics(SM_CXVSCROLL);\r
167                 rc.left = rc.right - size;\r
168                 rc.top = rc.bottom - size;\r
169                 dcClient.DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);\r
170         }\r
171         \r
172         // Suppress default background drawing\r
173         return TRUE;\r
174 }

UCC git Repository :: git.ucc.asn.au