--- /dev/null
+////////////////////////////////////////////////////\r
+// Mainfrm.cpp - definitions for the CMainFrame class\r
+\r
+#include "stdafx.h"\r
+#include "mainfrm.h"\r
+#include "resource.h"\r
+\r
+\r
+CMainFrame::CMainFrame()\r
+{\r
+ SetView(m_MainView);\r
+\r
+ // Set the registry key name, and load the initial window position\r
+ // Use a registry key name like "CompanyName\\Application"\r
+ LoadRegistrySettings(_T("Win32++\\Splitter Sample"));\r
+}\r
+\r
+CMainFrame::~CMainFrame()\r
+{\r
+}\r
+\r
+BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)\r
+{\r
+ UNREFERENCED_PARAMETER(lParam);\r
+\r
+ switch(LOWORD(wParam))\r
+ {\r
+ case IDM_FILE_EXIT:\r
+ ::PostMessage(m_hWnd, WM_CLOSE, 0, 0);\r
+ return TRUE;\r
+ case IDM_VIEW_TEXT:\r
+ OnViewText();\r
+ break;\r
+ case IDM_VIEW_LIST:\r
+ OnViewList();\r
+ break;\r
+ case IDW_VIEW_STATUSBAR:\r
+ OnViewStatusBar();\r
+ return TRUE;\r
+ case IDW_VIEW_TOOLBAR:\r
+ OnViewToolBar();\r
+ return TRUE;\r
+ case IDM_HELP_ABOUT:\r
+ OnHelp();\r
+ return TRUE;\r
+ }\r
+ return FALSE;\r
+}\r
+\r
+void CMainFrame::OnInitialUpdate()\r
+{\r
+ // Set the styles for splitter panes\r
+ DWORD dwStyle = DS_NO_UNDOCK | DS_NO_CAPTION | DS_CLIENTEDGE;\r
+ m_MainView.SetDockStyle(dwStyle);\r
+\r
+ CRect rcView = GetViewRect();\r
+\r
+ // Add the bottom pane first. It is a child of the main pane.\r
+ m_pDockTree = (CDockTree*)m_MainView.AddDockedChild(new CDockTree, dwStyle|DS_DOCKED_BOTTOM, rcView.Height()/2);\r
+\r
+ // Add the bottom right pane. It is a child of the bottom pane \r
+ m_pDockList = (CDockList*)m_pDockTree->AddDockedChild(new CDockList, dwStyle|DS_DOCKED_RIGHT, rcView.Width()/2);\r
+\r
+ // Add the top right pane. It is a child of the main pane.\r
+ m_pDockText = (CDockText*)m_MainView.AddDockedChild(new CDockText, dwStyle|DS_DOCKED_RIGHT, rcView.Width()/2);\r
+\r
+}\r
+\r
+void CMainFrame::OnViewList()\r
+{\r
+ DWORD dwStyle = DS_NO_UNDOCK | DS_NO_CAPTION | DS_CLIENTEDGE;\r
+ if (m_pDockList->IsDocked())\r
+ {\r
+ m_pDockList->Hide();\r
+ GetFrameMenu().CheckMenuItem(IDM_VIEW_LIST, MF_UNCHECKED);\r
+ }\r
+ else\r
+ {\r
+ m_pDockTree->Dock(m_pDockList, dwStyle | DS_DOCKED_RIGHT);\r
+ GetFrameMenu().CheckMenuItem(IDM_VIEW_LIST, MF_CHECKED);\r
+ }\r
+}\r
+\r
+void CMainFrame::OnViewText()\r
+{\r
+ DWORD dwStyle = DS_NO_UNDOCK | DS_NO_CAPTION | DS_CLIENTEDGE;\r
+\r
+ if (m_pDockText->IsDocked())\r
+ {\r
+ m_pDockText->Hide();\r
+ GetFrameMenu().CheckMenuItem(IDM_VIEW_TEXT, MF_UNCHECKED);\r
+ }\r
+ else\r
+ {\r
+ m_MainView.Dock(m_pDockText, dwStyle | DS_DOCKED_RIGHT);\r
+ GetFrameMenu().CheckMenuItem(IDM_VIEW_TEXT, MF_CHECKED);\r
+ }\r
+}\r
+\r
+void CMainFrame::SetupToolBar()\r
+{ \r
+ // Define the resource IDs for the toolbar\r
+ AddToolBarButton( IDM_FILE_NEW );\r
+ AddToolBarButton( IDM_FILE_OPEN );\r
+ AddToolBarButton( IDM_FILE_SAVE );\r
+ AddToolBarButton( 0 ); // Separator\r
+ AddToolBarButton( IDM_EDIT_CUT );\r
+ AddToolBarButton( IDM_EDIT_COPY );\r
+ AddToolBarButton( IDM_EDIT_PASTE );\r
+ AddToolBarButton( 0 ); // Separator\r
+ AddToolBarButton( IDM_FILE_PRINT );\r
+ AddToolBarButton( 0 ); // Separator\r
+ AddToolBarButton( IDM_HELP_ABOUT );\r
+}\r
+\r
+LRESULT CMainFrame::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+// switch (uMsg)\r
+// {\r
+// Add case statements for each messages to be handled here\r
+// }\r
+\r
+ // pass unhandled messages on for default processing\r
+ return WndProcDefault(uMsg, wParam, lParam);\r
+}\r
+\r