1 ////////////////////////////////////////////////////
\r
5 #include "resource.h"
\r
10 // A global function to provide access to the CFormDoc class
\r
13 return GetSdiApp().GetMainFrame().GetDoc();
\r
17 // Definitions for the CMainFrame class
\r
18 CMainFrame::CMainFrame() : m_SdiView(IDD_DIALOG1)
\r
20 // Constructor for CMainFrame. Its called after CFrame's constructor
\r
22 //Set m_SdiView as the view window of the frame
\r
25 // Set the registry key name, and load the initial window position
\r
26 // Use a registry key name like "CompanyName\\Application"
\r
27 LoadRegistrySettings(_T("Win32++\\SdiDocViewForm"));
\r
30 CMainFrame::~CMainFrame()
\r
32 // Destructor for CMainFrame.
\r
35 BOOL CMainFrame::LoadRegistrySettings(LPCTSTR szKeyName)
\r
37 CFrame::LoadRegistrySettings(szKeyName);
\r
38 GetDoc().LoadDocRegistry(GetRegistryKeyName().c_str());
\r
43 void CMainFrame::OnMenuUpdate(UINT nID)
\r
45 // Update the check state of the various menu items
\r
49 OnUpdateCheckA(nID);
\r
52 OnUpdateCheckB(nID);
\r
55 OnUpdateCheckC(nID);
\r
59 if ((nID >= ID_RADIO_A) && (nID <= ID_RADIO_C))
\r
60 OnUpdateRangeOfIds_Radio(nID);
\r
63 BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)
\r
65 UNREFERENCED_PARAMETER(lParam);
\r
66 WORD wpLo = LOWORD(wParam);
\r
68 switch(LOWORD(wParam))
\r
71 m_SdiView.OnCheckA();
\r
74 m_SdiView.OnCheckB();
\r
77 m_SdiView.OnCheckC();
\r
83 m_SdiView.OnRangeOfIds_Radio(wpLo - ID_RADIO_A);
\r
86 case IDW_VIEW_STATUSBAR:
\r
89 case IDW_VIEW_TOOLBAR:
\r
93 // End the application
\r
94 ::PostMessage(m_hWnd, WM_CLOSE, 0, 0);
\r
97 case IDM_HELP_ABOUT:
\r
98 // Display the help dialog
\r
106 void CMainFrame::OnCreate()
\r
108 // OnCreate controls the way the frame is created.
\r
109 // Overriding CFrame::Oncreate is optional.
\r
110 // The default for the following variables is TRUE
\r
112 // m_bShowIndicatorStatus = FALSE; // Don't show statusbar indicators
\r
113 // m_bShowMenuStatus = FALSE; // Don't show toolbar or menu status
\r
114 // m_bUseReBar = FALSE; // Don't use rebars
\r
115 // m_bUseThemes = FALSE; // Don't use themes
\r
116 // m_bUseToolBar = FALSE; // Don't use a toolbar
\r
117 // m_bUseCustomDraw = FALSE; // Don't use custom draw for menu items
\r
119 // call the base class function
\r
120 CFrame::OnCreate();
\r
123 void CMainFrame::OnInitialUpdate()
\r
125 // The frame is now created.
\r
126 // Place any additional startup code here.
\r
130 void CMainFrame::PreCreate(CREATESTRUCT& cs)
\r
132 CFrame::PreCreate(cs);
\r
137 BOOL CMainFrame::SaveRegistrySettings()
\r
139 CFrame::SaveRegistrySettings();
\r
140 GetDoc().SaveDocRegistry(GetRegistryKeyName().c_str());
\r
145 void CMainFrame::SetupToolBar()
\r
147 // Set the Resource IDs for the toolbar buttons
\r
148 AddToolBarButton( IDM_FILE_NEW );
\r
149 AddToolBarButton( IDM_FILE_OPEN );
\r
150 AddToolBarButton( IDM_FILE_SAVE );
\r
151 AddToolBarButton( 0 ); // Separator
\r
152 AddToolBarButton( IDM_EDIT_CUT );
\r
153 AddToolBarButton( IDM_EDIT_COPY );
\r
154 AddToolBarButton( IDM_EDIT_PASTE );
\r
155 AddToolBarButton( 0 ); // Separator
\r
156 AddToolBarButton( IDM_FILE_PRINT );
\r
157 AddToolBarButton( 0 ); // Separator
\r
158 AddToolBarButton( IDM_HELP_ABOUT );
\r
161 LRESULT CMainFrame::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
\r
165 // // Suppress resizing
\r
168 // LPRECT pRect = (LPRECT)lParam;
\r
169 // pRect->right = pRect->left + 500;
\r
170 // pRect->bottom = pRect->top + 420;
\r
175 // pass unhandled messages on for default processing
\r
176 return WndProcDefault(uMsg, wParam, lParam);
\r
179 void CMainFrame::OnUpdateCheckA(UINT nID)
\r
181 BOOL bCheck = GetDoc().GetCheckA();
\r
182 GetFrameMenu().CheckMenuItem(nID, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));
\r
185 void CMainFrame::OnUpdateCheckB(UINT nID)
\r
187 BOOL bCheck = GetDoc().GetCheckB();
\r
188 GetFrameMenu().CheckMenuItem(nID, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));
\r
191 void CMainFrame::OnUpdateCheckC(UINT nID)
\r
193 BOOL bCheck = GetDoc().GetCheckC();
\r
194 GetFrameMenu().CheckMenuItem(nID, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));
\r
197 void CMainFrame::OnUpdateRangeOfIds_Radio(UINT nID)
\r
199 UINT adjId = nID - ID_RADIO_A;
\r
200 UINT curRadio = GetDoc().GetRadio();
\r
201 BOOL bCheck = (curRadio == adjId);
\r
202 int nFileItem = GetMenuItemPos(GetFrameMenu(), _T("Select"));
\r
203 CMenu* pRadioMenu = GetFrameMenu().GetSubMenu(nFileItem);
\r
205 pRadioMenu->CheckMenuRadioItem(ID_RADIO_A, ID_RADIO_C, nID, 0);
\r