)
{
wxStatusBar* pStatusBar = NULL;
+ SWP vSwp;
+ ERRORID vError;
+ wxString sError;
+ HWND hWnd;
pStatusBar = wxFrameBase::OnCreateStatusBar( nNumber
,lulStyle
,vId
,rName
);
+ //
+ // The default parent set for the Statusbar is m_hWnd which, of course,
+ // is the handle to the client window of the frame. We don't want that,
+ // so we have to set the parent to actually be the Frame.
+ //
+ hWnd = pStatusBar->GetHWND();
+ if (!::WinSetParent(hWnd, m_hFrame, FALSE))
+ {
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
+ wxLogError("Error setting parent for statusbar. Error: %s\n", sError);
+ return NULL;
+ }
+
+ //
+ // Also we need to reset it positioning to enable the SHOW attribute
+ //
+ if (!::WinQueryWindowPos((HWND)pStatusBar->GetHWND(), &vSwp))
+ {
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
+ wxLogError("Error querying frame for statusbar position. Error: %s\n", sError);
+ return NULL;
+ }
+ if (!::WinSetWindowPos( (HWND)pStatusBar->GetHWND()
+ ,HWND_TOP
+ ,vSwp.cx
+ ,vSwp.cy
+ ,vSwp.x
+ ,vSwp.y
+ ,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
+ ))
+ {
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
+ wxLogError("Error setting statusbar position. Error: %s\n", sError);
+ return NULL;
+ }
return pStatusBar;
} // end of wxFrame::OnCreateStatusBar
void wxFrame::PositionStatusBar()
{
+ SWP vSwp;
+ ERRORID vError;
+ wxString sError;
+
//
// Native status bar positions itself
//
,nWidth
,nStatbarHeight
);
+ if (!::WinQueryWindowPos(m_frameStatusBar->GetHWND(), &vSwp))
+ {
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
+ wxLogError("Error setting parent for submenu. Error: %s\n", sError);
+ return;
+ }
+ if (!::WinSetWindowPos( m_frameStatusBar->GetHWND()
+ ,HWND_TOP
+ ,nStatbarWidth
+ ,nStatbarHeight
+ ,vSwp.x
+ ,vSwp.y
+ ,SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER
+ ))
+ {
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
+ wxLogError("Error setting parent for submenu. Error: %s\n", sError);
+ return;
+ }
}
} // end of wxFrame::PositionStatusBar
#endif // wxUSE_STATUSBAR
if (ulStyle == wxDEFAULT_FRAME_STYLE)
ulCreateFlags = FCF_SIZEBORDER | FCF_TITLEBAR | FCF_SYSMENU |
- FCF_MINMAX | FCF_VERTSCROLL | FCF_HORZSCROLL | FCF_TASKLIST;
+ FCF_MINMAX | FCF_TASKLIST;
else
{
if ((ulStyle & wxCAPTION) == wxCAPTION)
else
ulCreateFlags = FCF_NOMOVEWITHOWNER;
+ if ((ulStyle & wxVSCROLL) == wxVSCROLL)
+ ulCreateFlags |= FCF_VERTSCROLL;
+ if ((ulStyle & wxHSCROLL) == wxHSCROLL)
+ ulCreateFlags |= FCF_HORZSCROLL;
if (ulStyle & wxMINIMIZE_BOX)
ulCreateFlags |= FCF_MINBUTTON;
if (ulStyle & wxMAXIMIZE_BOX)
,HWND_TOP // Sibling
,(ULONG)nId // ID
,(PVOID)&vFrameCtlData // Creation data
- ,NULL // Window Pres Params
+ ,NULL // Window Pres Params
)) == 0L)
{
return FALSE;
,nY
,nWidth
,nHeight
- ,SWP_SIZE | SWP_MOVE | SWP_ACTIVATE
+ ,SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_ZORDER
))
return FALSE;
WXMSG* pMsg
)
{
- if (wxWindow::OS2TranslateMessage(pMsg))
- return TRUE;
//
// try the menu bar accels
//
return FALSE;
const wxAcceleratorTable& rAcceleratorTable = pMenuBar->GetAccelTable();
- return rAcceleratorTable.Translate(this, pMsg);
+ return rAcceleratorTable.Translate(m_hFrame, pMsg);
} // end of wxFrame::OS2TranslateMessage
// ---------------------------------------------------------------------------
}
else
{
+ HPS hPS;
+ RECTL vRect;
+
+ hPS = WinBeginPaint(GetHwnd(), 0L, &vRect);
+ WinFillRect(hPS, &vRect, SYSCLR_WINDOW);
+ WinEndPaint(hPS);
+
return wxWindow::HandlePaint();
}
}