wxAssociateWinWithHandle(m_hWnd, this);
wxAssociateWinWithHandle(m_hFrame, this);
- m_backgroundColour.Set(wxString("GREY"));
+ m_backgroundColour.Set(wxString("MEDIUM GREY"));
LONG lColor = (LONG)m_backgroundColour.GetPixel();
wxLogError("Error sizing frame. Error: %s\n", sError);
return FALSE;
}
+ lStyle = ::WinQueryWindowULong( m_hWnd
+ ,QWL_STYLE
+ );
+ lStyle |= WS_CLIPCHILDREN;
+ ::WinSetWindowULong( m_hWnd
+ ,QWL_STYLE
+ ,lStyle
+ );
return TRUE;
} // end of wxTopLevelWindowOS2::CreateFrame
int nShowCmd
)
{
- ::WinShowWindow(m_hFrame, (BOOL)nShowCmd);
+ ::WinShowWindow(m_hFrame, (BOOL)(nShowCmd & SWP_SHOW));
+
+ //
+ // Need to artificially send a size event as wxApps often expect to do some
+ // final child control sizing
+ SendSizeEvent();
m_bIconized = nShowCmd == SWP_MINIMIZE;
} // end of wxTopLevelWindowOS2::DoShowWindow
{
if (m_bMaximizeOnShow)
{
- nShowCmd = SWP_SHOW;
+ nShowCmd = SWP_MAXIMIZE;
m_bMaximizeOnShow = FALSE;
}
else
{
- nShowCmd = SWP_HIDE;
+ nShowCmd = SWP_SHOW;
}
}
else // hide
DoShowWindow(SWP_RESTORE);
} // end of wxTopLevelWindowOS2::Restore
+// generate an artificial resize event
+void wxTopLevelWindowOS2::SendSizeEvent()
+{
+ if (!m_bIconized)
+ {
+ RECTL vRect = wxGetWindowRect(GetHwnd());
+
+ (void)::WinPostMsg( m_hFrame
+ ,WM_SIZE
+ ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
+ ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
+ );
+ }
+} // end of wxTopLevelWindowOS2::SendSizeEvent
+
// ----------------------------------------------------------------------------
// wxTopLevelWindowOS2 fullscreen
// ----------------------------------------------------------------------------