--- /dev/null
+//////////////////////////////////////////////\r
+// MDIChildSimple.cpp\r
+// Definitions for the CViewSimple and CMDIChildSimple classes\r
+\r
+#include "stdafx.h"\r
+#include "MDIChildSimple.h"\r
+#include "resource.h"\r
+\r
+\r
+// CViewSimple definitions\r
+CViewSimple::CViewSimple() : m_Color(RGB(0,0,255))\r
+{\r
+}\r
+\r
+void CViewSimple::OnDraw(CDC* pDC)\r
+{\r
+ //Centre some text in our view window\r
+ CRect rc = GetClientRect();\r
+ pDC->SetTextColor(m_Color);\r
+ pDC->DrawText(_T("View Window"), -1, rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE);\r
+}\r
+\r
+LRESULT CViewSimple::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+ switch (uMsg)\r
+ {\r
+ case WM_SIZE:\r
+ // Force the window to be repainted\r
+ Invalidate();\r
+ break; // Also do default processing\r
+ }\r
+\r
+ // Do default processing for other messages\r
+ return WndProcDefault(uMsg, wParam, lParam);\r
+}\r
+\r
+// CMDIChildSimple definitions\r
+CMDIChildSimple::CMDIChildSimple()\r
+{\r
+ HINSTANCE hResource = GetApp()->GetResourceHandle();\r
+ HMENU hChildMenu = LoadMenu(hResource, _T("MdiMenuView"));\r
+ SetHandles(hChildMenu, NULL);\r
+ SetView(m_View);\r
+}\r
+\r
+CMDIChildSimple::~CMDIChildSimple()\r
+{\r
+}\r
+\r
+void CMDIChildSimple::OnInitialUpdate()\r
+{\r
+ SetWindowText(_T("Simple Window"));\r
+ SetIconLarge(IDI_VIEW);\r
+ SetIconSmall(IDI_VIEW);\r
+}\r
+\r
+int CMDIChildSimple::OnClose()\r
+{\r
+ int nResult = MessageBox(_T("OK to close Window?"), _T("File Close"), MB_YESNO);\r
+\r
+ if (nResult == IDYES)\r
+ MDIDestroy();\r
+\r
+ // Return value is either IDYES or IDNO\r
+ return nResult;\r
+}\r
+\r
+BOOL CMDIChildSimple::OnCommand(WPARAM wParam, LPARAM lParam)\r
+{\r
+ UNREFERENCED_PARAMETER(lParam);\r
+\r
+ switch (LOWORD(wParam))\r
+ {\r
+ case IDM_COLOR_BLACK:\r
+ m_View.SetColor(RGB(0,0,0));\r
+ Invalidate();\r
+ return TRUE;\r
+ case IDM_COLOR_RED:\r
+ m_View.SetColor(RGB(255, 0, 0));\r
+ Invalidate();\r
+ return TRUE;\r
+ case IDM_COLOR_GREEN:\r
+ m_View.SetColor(RGB(0, 255, 0));\r
+ Invalidate();\r
+ return TRUE;\r
+ case IDM_COLOR_BLUE:\r
+ m_View.SetColor(RGB(0, 0, 255));\r
+ Invalidate();\r
+ return TRUE;\r
+ case IDM_COLOR_WHITE:\r
+ m_View.SetColor(RGB(255, 255, 255));\r
+ Invalidate();\r
+ return TRUE;\r
+ }\r
+\r
+ return FALSE;\r
+}\r
+\r
+LRESULT CMDIChildSimple::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+ switch (uMsg)\r
+ {\r
+ case WM_CLOSE:\r
+ return OnClose(); // Don't do default processing\r
+ }\r
+\r
+ // Do default processing for other messages\r
+ return WndProcDefault(uMsg, wParam, lParam);\r
+}\r