}
#endif // !__WXWINCE__
+#if !defined(__WXWINCE__) || defined(__WINCE_STANDARDSDK__)
// move the dialog to its initial position without forcing repainting
int x, y, w, h;
(void)MSWGetCreateWindowCoords(pos, size, x, y, w, h);
if ( x == (int)CW_USEDEFAULT )
{
- // centre it on the screen - what else can we do?
- wxSize sizeDpy = wxGetDisplaySize();
-
- x = (sizeDpy.x - w) / 2;
- y = (sizeDpy.y - h) / 2;
+ // Let the system position the window, just set its size.
+ ::SetWindowPos(GetHwnd(), 0,
+ 0, 0, w, h,
+ SWP_NOMOVE | SWP_NOZORDER);
}
-
-#if !defined(__WXWINCE__) || defined(__WINCE_STANDARDSDK__)
- if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
+ else // Move the window to the desired location and set its size too.
{
- wxLogLastError(wxT("MoveWindow"));
+ if ( !::MoveWindow(GetHwnd(), x, y, w, h, FALSE) )
+ {
+ wxLogLastError(wxT("MoveWindow"));
+ }
}
-#endif
+#endif // !__WXWINCE__
if ( !title.empty() )
{
{
::ShowWindow(GetHwnd(), nShowCmd);
- m_iconized = nShowCmd == SW_MINIMIZE;
+ // Hiding the window doesn't change its iconized state.
+ if ( nShowCmd != SW_HIDE )
+ {
+ // Otherwise restoring, maximizing or showing the window normally also
+ // makes it not iconized and only minimizing it does make it iconized.
+ m_iconized = nShowCmd == SW_MINIMIZE;
+ }
}
void wxTopLevelWindowMSW::ShowWithoutActivating()