subclass all updown controls in notebooks, not just the first one
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34320 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
600ffb3230
commit
dfb47d834d
@ -222,6 +222,16 @@ protected:
|
||||
bool DoDrawBackground(WXHDC hDC, wxWindow *child = NULL);
|
||||
#endif // wxUSE_UXTHEME
|
||||
|
||||
// these function are only used for reducing flicker on notebook resize and
|
||||
// we don't need to do this for WinCE
|
||||
#ifndef __WXWINCE__
|
||||
void OnEraseBackground(wxEraseEvent& event);
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
|
||||
// true if we have already subclassed our updown control
|
||||
bool m_hasSubclassedUpdown;
|
||||
#endif // __WXWINCE__
|
||||
|
||||
// the current selection (-1 if none)
|
||||
int m_nSelection;
|
||||
|
||||
@ -232,11 +242,6 @@ protected:
|
||||
WXHBRUSH m_hbrBackground;
|
||||
#endif // wxUSE_UXTHEME
|
||||
|
||||
// No need to optimize for WinCE
|
||||
#ifndef __WXWINCE__
|
||||
void OnEraseBackground(wxEraseEvent& event);
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
#endif
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxNotebook)
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
@ -229,6 +229,10 @@ void wxNotebook::Init()
|
||||
#if wxUSE_UXTHEME
|
||||
m_hbrBackground = NULL;
|
||||
#endif // wxUSE_UXTHEME
|
||||
|
||||
#if USE_NOTEBOOK_ANTIFLICKER
|
||||
m_hasSubclassedUpdown = false;
|
||||
#endif // USE_NOTEBOOK_ANTIFLICKER
|
||||
}
|
||||
|
||||
// default for dynamic class
|
||||
@ -921,7 +925,7 @@ void wxNotebook::OnSize(wxSizeEvent& event)
|
||||
#if USE_NOTEBOOK_ANTIFLICKER
|
||||
// subclass the spin control used by the notebook to scroll pages to
|
||||
// prevent it from flickering on resize
|
||||
if ( !gs_wndprocNotebookSpinBtn )
|
||||
if ( !m_hasSubclassedUpdown )
|
||||
{
|
||||
// iterate over all child windows to find spin button
|
||||
for ( HWND child = ::GetWindow(GetHwnd(), GW_CHILD);
|
||||
@ -935,9 +939,11 @@ void wxNotebook::OnSize(wxSizeEvent& event)
|
||||
if ( !childWindow )
|
||||
{
|
||||
// subclass the spin button to override WM_ERASEBKGND
|
||||
gs_wndprocNotebookSpinBtn = (WXFARPROC)wxGetWindowProc(child);
|
||||
if ( !gs_wndprocNotebookSpinBtn )
|
||||
gs_wndprocNotebookSpinBtn = (WXFARPROC)wxGetWindowProc(child);
|
||||
|
||||
wxSetWindowProc(child, wxNotebookSpinBtnWndProc);
|
||||
m_hasSubclassedUpdown = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user