X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3818fbe8e439bc9af8c20371774520a5a2bc9c7..2356708db31b737c6eae53c2316b642aa5a2e68d:/src/msw/mdi.cpp?ds=sidebyside diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 0a43426620..381c6d0456 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -192,10 +192,8 @@ bool wxMDIParentFrame::Create(wxWindow *parent, if (style & wxCAPTION) msflags |= WS_CAPTION; - // Adding WS_CLIPCHILDREN causes children not to be properly - // drawn when first displaying them. -// if (style & wxCLIP_CHILDREN) -// msflags |= WS_CLIPCHILDREN; + if (style & wxCLIP_CHILDREN) + msflags |= WS_CLIPCHILDREN; wxWindow::MSWCreate(m_windowId, parent, wxMDIFrameClassName, this, title, x, y, width, height, msflags); @@ -383,9 +381,9 @@ long wxMDIParentFrame::MSWWindowProc(WXUINT message, break; case WM_SIZE: - // we will leave this message to the base class version, but we - // must pass it to DefFrameProc() too - MSWDefWindowProc(message, wParam, lParam); + // as we don't (usually) resize the MDI client to exactly fit the + // client area (we put it below the toolbar, above statusbar &c), + // we should not pass this one to DefFrameProc break; } @@ -537,10 +535,7 @@ bool wxMDIParentFrame::MSWTranslateMessage(WXMSG* msg) return TRUE; } - if ( m_acceleratorTable.Ok() && - ::TranslateAccelerator(GetHwnd(), - GetTableHaccel(m_acceleratorTable), - pMsg) ) + if ( m_acceleratorTable.Translate(this, msg) ) { return TRUE; } @@ -732,25 +727,35 @@ void wxMDIChildFrame::InternalSetMenuBar() // MDI operations // --------------------------------------------------------------------------- -void wxMDIChildFrame::Maximize() +void wxMDIChildFrame::Maximize(bool maximize) { wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); if ( parent && parent->GetClientWindow() ) - ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIMAXIMIZE, (WPARAM) GetHwnd(), 0); + { + ::SendMessage(GetWinHwnd(parent->GetClientWindow()), + maximize ? WM_MDIMAXIMIZE : WM_MDIRESTORE, + (WPARAM)GetHwnd(), 0); + } } void wxMDIChildFrame::Restore() { wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); if ( parent && parent->GetClientWindow() ) - ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIRESTORE, (WPARAM) GetHwnd(), 0); + { + ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIRESTORE, + (WPARAM) GetHwnd(), 0); + } } void wxMDIChildFrame::Activate() { wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); if ( parent && parent->GetClientWindow() ) - ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIACTIVATE, (WPARAM) GetHwnd(), 0); + { + ::SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIACTIVATE, + (WPARAM) GetHwnd(), 0); + } } // --------------------------------------------------------------------------- @@ -993,15 +998,7 @@ long wxMDIChildFrame::MSWDefWindowProc(WXUINT message, WXUINT wParam, WXLPARAM l bool wxMDIChildFrame::MSWTranslateMessage(WXMSG* msg) { - MSG *pMsg = (MSG *)msg; - if ( m_acceleratorTable.Ok() ) - { - return ::TranslateAccelerator(GetWinHwnd(GetParent()), - GetTableHaccel(m_acceleratorTable), - pMsg) != 0; - } - - return FALSE; + return m_acceleratorTable.Translate(GetParent(), msg); } // ---------------------------------------------------------------------------