1 ///////////////////////////////////////
\r
5 #include "MyDialog.h"
\r
6 #include "resource.h"
\r
9 // Definitions for the CMyDialog class
\r
10 CMyDialog::CMyDialog(UINT nResID, CWnd* pParent)
\r
11 : CDialog(nResID, pParent)
\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
18 CMyDialog::~CMyDialog()
\r
20 ::FreeLibrary(m_hInstRichEdit);
\r
23 INT_PTR CMyDialog::DialogProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
\r
25 // Pass resizing messages on to the resizer
\r
26 m_Resizer.HandleMessage(uMsg, wParam, lParam);
\r
30 //Additional messages to be handled go here
\r
33 // Pass unhandled messages on to parent DialogProc
\r
34 return DialogProcDefault(uMsg, wParam, lParam);
\r
37 BOOL CMyDialog::OnCommand(WPARAM wParam, LPARAM lParam)
\r
39 UNREFERENCED_PARAMETER(lParam);
\r
41 switch (LOWORD(wParam))
\r
64 } //switch (LOWORD(wParam))
\r
69 BOOL CMyDialog::OnInitDialog()
\r
72 SetIconLarge(IDW_MAIN);
\r
73 SetIconSmall(IDW_MAIN);
\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
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
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
105 void CMyDialog::OnOK()
\r
107 MessageBox(_T("OK Button Pressed. Program will exit now."), _T("Button"), MB_OK);
\r
111 void CMyDialog::OnButton()
\r
113 SetDlgItemText(IDC_STATIC3, _T("Button Pressed"));
\r
114 TRACE(_T("Button Pressed\n"));
\r
117 void CMyDialog::OnCheck1()
\r
119 SetDlgItemText(IDC_STATIC3, _T("Check Box 1"));
\r
120 TRACE(_T("Check Box 1\n"));
\r
123 void CMyDialog::OnCheck2()
\r
125 SetDlgItemText(IDC_STATIC3, _T("Check Box 2"));
\r
126 TRACE(_T("Check Box 2\n"));
\r
129 void CMyDialog::OnCheck3()
\r
131 SetDlgItemText(IDC_STATIC3, _T("Check Box 3"));
\r
132 TRACE(_T("Check Box 3\n"));
\r
135 void CMyDialog::OnRadio1()
\r
137 SetDlgItemText(IDC_STATIC3, _T("Radio 1"));
\r
138 TRACE(_T("Radio 1\n"));
\r
141 void CMyDialog::OnRadio2()
\r
143 SetDlgItemText(IDC_STATIC3, _T("Radio 2"));
\r
144 TRACE(_T("Radio 2\n"));
\r
147 void CMyDialog::OnRadio3()
\r
149 SetDlgItemText(IDC_STATIC3, _T("Radio 3"));
\r
150 TRACE(_T("Radio 3\n"));
\r
153 BOOL CMyDialog::OnEraseBkgnd(CDC* pDC)
\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
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
164 if (rc.Width() > m_Resizer.GetMinRect().Width() && rc.Height() > m_Resizer.GetMinRect().Height())
\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
172 // Suppress default background drawing
\r