- //CreateStatusBar(m_fsStatusBarFields);
- if (GetStatusBar())
- {
- GetStatusBar()->Show(TRUE);
- PositionStatusBar();
- }
- }
-#endif // wxUSE_STATUSBAR
-
-#ifndef __WXMICROWIN__
- if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0))
- SetMenu((HWND)GetHWND(), (HMENU)m_hMenu);
-#endif
-
- Maximize(m_fsIsMaximized);
- SetWindowLong((HWND)GetHWND(),GWL_STYLE, m_fsOldWindowStyle);
- SetWindowPos((HWND)GetHWND(),HWND_TOP,m_fsOldSize.x, m_fsOldSize.y,
- m_fsOldSize.width, m_fsOldSize.height, SWP_FRAMECHANGED);
-
- return TRUE;
- }
-}
-
-/*
- * Frame window
- *
- */
-
-bool wxFrameMSW::MSWCreate(int id, wxWindow *parent, const wxChar *wclass, wxWindow *wx_win, const wxChar *title,
- int x, int y, int width, int height, long style)
-
-{
- m_defaultIcon = (WXHICON) (wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON : wxDEFAULT_FRAME_ICON);
-
- // If child windows aren't properly drawn initially, WS_CLIPCHILDREN
- // could be the culprit. But without it, you can get a lot of flicker.
-
- DWORD msflags = 0;
- if ( style & wxCAPTION )
- {
- if ( style & wxFRAME_TOOL_WINDOW )
- msflags |= WS_POPUPWINDOW;
- else
- msflags |= WS_OVERLAPPED;
- }
- else
- {
- msflags |= WS_POPUP;
- }
-
- if (style & wxMINIMIZE_BOX)
- msflags |= WS_MINIMIZEBOX;
- if (style & wxMAXIMIZE_BOX)
- msflags |= WS_MAXIMIZEBOX;
- if (style & wxTHICK_FRAME)
- msflags |= WS_THICKFRAME;
- if (style & wxSYSTEM_MENU)
- msflags |= WS_SYSMENU;
- if ( style & wxMINIMIZE )
- msflags |= WS_MINIMIZE;
- if (style & wxMAXIMIZE)
- msflags |= WS_MAXIMIZE;
- if (style & wxCAPTION)
- msflags |= WS_CAPTION;
- if (style & wxCLIP_CHILDREN)
- msflags |= WS_CLIPCHILDREN;
-
- // Keep this in wxFrameMSW because it saves recoding this function
- // in wxTinyFrame
-#if wxUSE_ITSY_BITSY && !defined(__WIN32__)
- if (style & wxTINY_CAPTION_VERT)
- msflags |= IBS_VERTCAPTION;
- if (style & wxTINY_CAPTION_HORIZ)
- msflags |= IBS_HORZCAPTION;
-#else
- if (style & wxTINY_CAPTION_VERT)
- msflags |= WS_CAPTION;
- if (style & wxTINY_CAPTION_HORIZ)
- msflags |= WS_CAPTION;
-#endif
- if ((style & wxTHICK_FRAME) == 0)
- msflags |= WS_BORDER;
-
- WXDWORD extendedStyle = MakeExtendedStyle(style);
-
- // make all frames appear in the win9x shell taskbar unless
- // wxFRAME_TOOL_WINDOW or wxFRAME_NO_TASKBAR is given - without giving them
- // WS_EX_APPWINDOW style, the child (i.e. owned) frames wouldn't appear in it
-#if !defined(__WIN16__) && !defined(__SC__)
- if ( (style & wxFRAME_TOOL_WINDOW) ||
- (style & wxFRAME_NO_TASKBAR) )
- extendedStyle |= WS_EX_TOOLWINDOW;
- else if ( !(style & wxFRAME_NO_TASKBAR) )
- extendedStyle |= WS_EX_APPWINDOW;
-#endif
-
- if (style & wxSTAY_ON_TOP)
- extendedStyle |= WS_EX_TOPMOST;
-
-#ifndef __WIN16__
- if (m_exStyle & wxFRAME_EX_CONTEXTHELP)
- extendedStyle |= WS_EX_CONTEXTHELP;
-#endif
-
- m_iconized = FALSE;
- if ( !wxWindow::MSWCreate(id, parent, wclass, wx_win, title, x, y, width, height,
- msflags, NULL, extendedStyle) )
- return FALSE;
-
- // Seems to be necessary if we use WS_POPUP
- // style instead of WS_OVERLAPPED
- if (width > -1 && height > -1)
- ::PostMessage(GetHwnd(), WM_SIZE, SIZE_RESTORED, MAKELPARAM(width, height));
-
- return TRUE;
-}
-
-// Default activation behaviour - set the focus for the first child
-// subwindow found.
-void wxFrameMSW::OnActivate(wxActivateEvent& event)
-{
- if ( event.GetActive() )
- {
- // restore focus to the child which was last focused
- wxLogTrace(_T("focus"), _T("wxFrameMSW %08x activated."), m_hWnd);
-
- wxWindow *parent = m_winLastFocused ? m_winLastFocused->GetParent()
- : NULL;
- if ( !parent )
- {
- parent = this;
- }
-
- wxSetFocusToChild(parent, &m_winLastFocused);
- }
- else // deactivating
- {
- // remember the last focused child if it is our child
- m_winLastFocused = FindFocus();