changed wxWindow::Refresh() to refresh the window children as well (as wxGTK already did); documented this as correct behaviour
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -36,6 +36,7 @@ wxMSW:
|
||||
- Added "orient" parameter to wxMDIParentFrame::Tile()
|
||||
- wxTextCtrl with wxTE_RICH2 style now uses RichEdit 4.1 if available
|
||||
- fix handling Alt-key events in wxComboBox (reported by Joakim Roubert)
|
||||
- wxWindow::Refresh() refreshes the window children as well
|
||||
|
||||
wxGTK:
|
||||
|
||||
|
@@ -2225,8 +2225,10 @@ or frame).
|
||||
\func{virtual void}{Refresh}{\param{bool}{ eraseBackground = {\tt true}}, \param{const wxRect* }{rect
|
||||
= NULL}}
|
||||
|
||||
Causes an event to be generated to repaint the
|
||||
window.
|
||||
Causes this window, and all of its children recursively, to be repainted. Note
|
||||
that repainting doesn't happen immediately but only during the next event loop
|
||||
iteration, if you need to update the window immediately you should use
|
||||
\helpref{Update}{wxwindowupdate} instead.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
@@ -3490,7 +3492,7 @@ This function is currently only implemented under MSW.
|
||||
Calling this method immediately repaints the invalidated area of the window
|
||||
while this would usually only happen when the flow of control returns to the
|
||||
event loop. Notice that this function doesn't refresh the window and does
|
||||
nothing if the window hadn't been already repainted. Use
|
||||
nothing if the window hadn't been already repainted. Use
|
||||
\helpref{Refresh}{wxwindowrefresh} first if you want to immediately redraw the
|
||||
window unconditionally.
|
||||
|
||||
|
@@ -1324,18 +1324,27 @@ void wxWindowMSW::Refresh(bool eraseBack, const wxRect *rect)
|
||||
HWND hWnd = GetHwnd();
|
||||
if ( hWnd )
|
||||
{
|
||||
RECT mswRect;
|
||||
const RECT *pRect;
|
||||
if ( rect )
|
||||
{
|
||||
RECT mswRect;
|
||||
mswRect.left = rect->x;
|
||||
mswRect.top = rect->y;
|
||||
mswRect.right = rect->x + rect->width;
|
||||
mswRect.bottom = rect->y + rect->height;
|
||||
|
||||
::InvalidateRect(hWnd, &mswRect, eraseBack);
|
||||
pRect = &mswRect;
|
||||
}
|
||||
else
|
||||
::InvalidateRect(hWnd, NULL, eraseBack);
|
||||
{
|
||||
pRect = NULL;
|
||||
}
|
||||
|
||||
UINT flags = RDW_INVALIDATE | RDW_ALLCHILDREN;
|
||||
if ( eraseBack )
|
||||
flags |= RDW_ERASE;
|
||||
|
||||
::RedrawWindow(hWnd, pRect, NULL, flags);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user