restore passing WM_COMMAND messages for SC_XXX commands to DefFrameProc() in wxMDIParentFrame::MSWWindowProc() accidentally removed in previous changes; removed doing this for WM_SYSCOMMAND in wxMDIChildFrame as this does seem to be unnecessary
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -522,8 +522,8 @@ void wxMDIParentFrame::ActivatePrevious()
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
WXLRESULT wxMDIParentFrame::MSWWindowProc(WXUINT message,
|
WXLRESULT wxMDIParentFrame::MSWWindowProc(WXUINT message,
|
||||||
WXWPARAM wParam,
|
WXWPARAM wParam,
|
||||||
WXLPARAM lParam)
|
WXLPARAM lParam)
|
||||||
{
|
{
|
||||||
WXLRESULT rc = 0;
|
WXLRESULT rc = 0;
|
||||||
bool processed = false;
|
bool processed = false;
|
||||||
@@ -540,6 +540,25 @@ WXLRESULT wxMDIParentFrame::MSWWindowProc(WXUINT message,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WM_COMMAND:
|
||||||
|
// system messages such as SC_CLOSE are sent as WM_COMMANDs to the
|
||||||
|
// parent MDI frame and we must let the DefFrameProc() have them
|
||||||
|
// for these commands to work (without it, closing the maximized
|
||||||
|
// MDI children doesn't work, for example)
|
||||||
|
{
|
||||||
|
WXWORD id, cmd;
|
||||||
|
WXHWND hwnd;
|
||||||
|
UnpackCommand(wParam, lParam, &id, &hwnd, &cmd);
|
||||||
|
|
||||||
|
if ( cmd == 0 /* menu */ &&
|
||||||
|
id >= SC_SIZE /* first system menu command */ )
|
||||||
|
{
|
||||||
|
MSWDefWindowProc(message, wParam, lParam);
|
||||||
|
processed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
m_clientWindow = OnCreateClient();
|
m_clientWindow = OnCreateClient();
|
||||||
// Uses own style for client style
|
// Uses own style for client style
|
||||||
@@ -561,8 +580,9 @@ WXLRESULT wxMDIParentFrame::MSWWindowProc(WXUINT message,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
// though we don't (usually) resize the MDI client to exactly fit the
|
// though we don't (usually) resize the MDI client to exactly fit
|
||||||
// client area we need to pass this one to DefFrameProc to allow the children to show
|
// the client area we need to pass this one to DefFrameProc to
|
||||||
|
// allow the children to show
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1020,8 +1040,8 @@ void wxMDIChildFrame::Activate()
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
WXLRESULT wxMDIChildFrame::MSWWindowProc(WXUINT message,
|
WXLRESULT wxMDIChildFrame::MSWWindowProc(WXUINT message,
|
||||||
WXWPARAM wParam,
|
WXWPARAM wParam,
|
||||||
WXLPARAM lParam)
|
WXLPARAM lParam)
|
||||||
{
|
{
|
||||||
WXLRESULT rc = 0;
|
WXLRESULT rc = 0;
|
||||||
bool processed = false;
|
bool processed = false;
|
||||||
@@ -1054,11 +1074,6 @@ WXLRESULT wxMDIChildFrame::MSWWindowProc(WXUINT message,
|
|||||||
MSWDefWindowProc(message, wParam, lParam);
|
MSWDefWindowProc(message, wParam, lParam);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_SYSCOMMAND:
|
|
||||||
// DefMDIChildProc handles SC_{NEXT/PREV}WINDOW here, so pass it
|
|
||||||
// the message (the base class version does not)
|
|
||||||
return MSWDefWindowProc(message, wParam, lParam);
|
|
||||||
|
|
||||||
case WM_WINDOWPOSCHANGING:
|
case WM_WINDOWPOSCHANGING:
|
||||||
processed = HandleWindowPosChanging((LPWINDOWPOS)lParam);
|
processed = HandleWindowPosChanging((LPWINDOWPOS)lParam);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user