Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / MDIFrameDemo / src / MainMDIfrm.cpp
diff --git a/research/transmission_spectroscopy/TOF/Win32++/samples/MDIFrameDemo/src/MainMDIfrm.cpp b/research/transmission_spectroscopy/TOF/Win32++/samples/MDIFrameDemo/src/MainMDIfrm.cpp
new file mode 100644 (file)
index 0000000..a572bea
--- /dev/null
@@ -0,0 +1,202 @@
+////////////////////////////////////////////////////\r
+// MainMDIfrm.cpp  - definitions for the CMainMDIFrame class\r
+\r
+#include "stdafx.h"\r
+#include "resource.h"\r
+#include "mainMDIfrm.h"\r
+#include "MDIChildSimple.h"\r
+#include "MDIChildRect.h"\r
+#include "MDIChildMax.h"\r
+#include "MDIChildText.h"\r
+#include "MDIChildTreeView.h"\r
+#include "MDIChildListView.h"\r
+\r
+\r
+CMainMDIFrame::CMainMDIFrame()\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++\\MDI Frame Sample"));\r
+}\r
+\r
+CMainMDIFrame::~CMainMDIFrame()\r
+{\r
+}\r
+\r
+void CMainMDIFrame::OnInitialUpdate()\r
+{\r
+       //The frame is now created.\r
+       //Place any additional startup code here.\r
+}\r
+\r
+void CMainMDIFrame::OnFileNew()\r
+{\r
+       // Creates the popup menu when the "New" toolbar button is pressed\r
+\r
+       // Position the popup menu\r
+       CToolBar& TB = GetToolBar();\r
+       RECT rc = TB.GetItemRect(TB.CommandToIndex(IDM_FILE_NEW));\r
+       TB.MapWindowPoints(NULL, (LPPOINT)&rc, 2);\r
+\r
+       TPMPARAMS tpm;\r
+       tpm.cbSize = sizeof(TPMPARAMS);\r
+       tpm.rcExclude = rc;\r
+\r
+       // Load the popup menu\r
+       CMenu TopMenu(IDM_NEWMENU);\r
+       CMenu* pPopupMenu = TopMenu.GetSubMenu(0);\r
+\r
+       // Start the popup menu\r
+       pPopupMenu->TrackPopupMenuEx(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_VERTICAL, rc.left, rc.bottom, this, &tpm);\r
+}\r
+\r
+BOOL CMainMDIFrame::OnCommand(WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch (LOWORD(wParam))\r
+       {\r
+       case IDM_FILE_NEW:\r
+               // For ComCtl versions 4.71 and older\r
+               OnFileNew();\r
+               return TRUE;\r
+       case IDM_FILE_NEWVIEW:\r
+               AddMDIChild(new CMDIChildSimple);       // CMDIFrame::RemoveMDIChild deletes this pointer\r
+               return TRUE;\r
+       case IDM_FILE_NEWRECT:\r
+               AddMDIChild(new CMDIChildRect); // CMDIFrame::RemoveMDIChild deletes this pointer\r
+               return TRUE;\r
+       case IDM_FILE_NEWTEXT:\r
+               AddMDIChild(new CMDIChildText); // CMDIFrame::RemoveMDIChild deletes this pointer\r
+               return TRUE;\r
+       case IDM_FILE_NEWMAX:\r
+               AddMDIChild(new CMDIChildMax);  // CMDIFrame::RemoveMDIChild deletes this pointer\r
+               return TRUE;\r
+       case IDM_FILE_NEWTREE:\r
+               AddMDIChild(new CMDIChildTreeView);     // CMDIFrame::RemoveMDIChild deletes this pointer\r
+               return TRUE;\r
+       case IDM_FILE_NEWLIST:\r
+               AddMDIChild(new CMDIChildListView);     // CMDIFrame::RemoveMDIChild deletes this pointer\r
+               return TRUE;\r
+       case IDM_FILE_CLOSE:    // Close the active MDI window\r
+               GetActiveMDIChild()->SendMessage(WM_CLOSE, 0L, 0L);\r
+               return TRUE;\r
+       case IDM_FILE_EXIT:\r
+               SendMessage(WM_CLOSE, 0L, 0L);\r
+               return TRUE;\r
+       case IDW_VIEW_STATUSBAR:\r
+               OnViewStatusBar();\r
+               UpdateCheckMarks();\r
+               break;\r
+       case IDW_VIEW_TOOLBAR:\r
+               OnViewToolBar();\r
+               UpdateCheckMarks();\r
+               break;\r
+       case IDW_MDI_ARRANGE:\r
+               MDIIconArrange();\r
+               break;\r
+       case IDW_MDI_CASCADE:\r
+               MDICascade();\r
+               break;\r
+       case IDW_MDI_CLOSEALL:\r
+               RemoveAllMDIChildren();\r
+               break;\r
+       case IDW_MDI_TILE:\r
+               MDITile();\r
+               break;\r
+       default:    // Pass to active child...\r
+               {\r
+                       if (GetActiveMDIChild())\r
+                               GetActiveMDIChild()->SendMessage(WM_COMMAND, wParam, lParam);\r
+               }\r
+               break ;\r
+       case IDM_HELP_ABOUT:\r
+               OnHelp();\r
+               return TRUE;\r
+       }\r
+\r
+       return FALSE;\r
+}\r
+\r
+void CMainMDIFrame::OnCreate()\r
+{\r
+       // OnCreate controls the way the frame is created.\r
+       // Overriding CFrame::Oncreate is optional.\r
+       // The default for the following variables is TRUE\r
+\r
+       // m_bShowIndicatorStatus = FALSE;      // Don't show statusbar indicators\r
+       // m_bShowMenuStatus = FALSE;           // Don't show toolbar or menu status\r
+       // m_bUseReBar = FALSE;                         // Don't use rebars\r
+       // m_bUseThemes = FALSE;            // Don't use themes\r
+       // m_bUseToolBar = FALSE;                       // Don't use a toolbar\r
+       // m_bUseCustomDraw = FALSE;            // Don't use custom draw for menu items\r
+\r
+       // call the base class function\r
+       CMDIFrame::OnCreate();\r
+}\r
+\r
+LRESULT CMainMDIFrame::OnNotify(WPARAM wParam, LPARAM lParam)\r
+{\r
+       // Notification from our dropdown button is recieved if Comctl32.dll version\r
+       // is 4.70 or later (IE v3 required).\r
+    switch(((LPNMHDR)lParam)->code)\r
+       {\r
+               //Menu for dropdown toolbar button\r
+               case TBN_DROPDOWN:\r
+               {\r
+                       if (((LPNMHDR)lParam)->hwndFrom == GetToolBar())\r
+                               OnFileNew();\r
+               }\r
+               break;\r
+\r
+       } //switch LPNMHDR\r
+\r
+       return CMDIFrame::OnNotify(wParam, lParam);\r
+}\r
+\r
+void CMainMDIFrame::SetupToolBar()\r
+{\r
+       // Define the resource IDs for the toolbar\r
+       AddToolBarButton( IDM_FILE_NEW   );\r
+       AddToolBarButton( IDM_FILE_OPEN,  FALSE );\r
+       AddToolBarButton( IDM_FILE_SAVE,  FALSE );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_EDIT_CUT,   FALSE );\r
+       AddToolBarButton( IDM_EDIT_COPY,  FALSE );\r
+       AddToolBarButton( IDM_EDIT_PASTE, FALSE );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_FILE_PRINT, FALSE );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_HELP_ABOUT );\r
+\r
+       // Use larger buttons with seperate imagelists for normal, hot and disabled buttons.\r
+       SetToolBarImages(RGB(192,192,192), IDB_TOOLBAR_NORM, IDB_TOOLBAR_HOT, IDB_TOOLBAR_DIS);\r
+\r
+       // Add some extra icons for menu items\r
+       AddMenuIcon(IDM_FILE_NEWVIEW, ::LoadIcon(GetApp()->GetInstanceHandle(), MAKEINTRESOURCE(IDI_VIEW)));\r
+       AddMenuIcon(IDM_FILE_NEWRECT, ::LoadIcon(GetApp()->GetInstanceHandle(), MAKEINTRESOURCE(IDI_RECT)));\r
+       AddMenuIcon(IDM_FILE_NEWMAX,  ::LoadIcon(GetApp()->GetInstanceHandle(), MAKEINTRESOURCE(IDI_MAX)));\r
+       AddMenuIcon(IDM_FILE_NEWTEXT, ::LoadIcon(GetApp()->GetInstanceHandle(), MAKEINTRESOURCE(IDI_TEXT)));\r
+       AddMenuIcon(IDM_FILE_NEWLIST, ::LoadIcon(GetApp()->GetInstanceHandle(), MAKEINTRESOURCE(IDI_FILES)));\r
+       AddMenuIcon(IDM_FILE_NEWTREE, ::LoadIcon(GetApp()->GetInstanceHandle(), MAKEINTRESOURCE(IDI_CLASSES)));\r
+\r
+       // Configure the "New" toolbar button to bring up a menu\r
+       // Setting this style requires comctl32.dll version 4.72 or later\r
+       if (GetComCtlVersion() >= 472)\r
+       {\r
+               GetToolBar().SetButtonStyle(IDM_FILE_NEW, BTNS_WHOLEDROPDOWN);\r
+       }\r
+}\r
+\r
+LRESULT CMainMDIFrame::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

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