Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CMainFrame :
- public CFrameWindowImpl<CMainFrame>
- {
- public:
- DECLARE_FRAME_WND_CLASS(NULL, 0)
- CTabView m_view;
- virtual BOOL PreTranslateMessage(MSG* pMsg)
- {
- if(CFrameWindowImpl<CMainFrame>::PreTranslateMessage(pMsg))
- return TRUE;
- return m_view.PreTranslateMessage(pMsg);
- }
- BEGIN_MSG_MAP(CMainFrame)
- MESSAGE_HANDLER(WM_CREATE, OnCreate)
- MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
- COMMAND_ID_HANDLER(ID_WINDOW_CLOSE, OnWindowClose)
- COMMAND_ID_HANDLER(ID_WINDOW_CLOSE_ALL, OnWindowCloseAll)
- CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)
- END_MSG_MAP()
- LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
- {
- m_hWndClient = m_view.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
- CView* pView = new CView;
- pView->Create(m_view, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, 0);
- m_view.AddPage(pView->m_hWnd, _T("Document"));
- return 0;
- }
- LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
- {
- // unregister message filtering and idle updates
- CMessageLoop* pLoop = _Module.GetMessageLoop();
- ATLASSERT(pLoop != NULL);
- bHandled = FALSE;
- return 1;
- }
- LRESULT OnWindowClose(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
- {
- int nActivePage = m_view.GetActivePage();
- if(nActivePage != -1)
- m_view.RemovePage(nActivePage);
- else
- ::MessageBeep((UINT)-1);
- return 0;
- }
- LRESULT OnWindowCloseAll(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
- {
- m_view.RemoveAllPages();
- return 0;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement