From: Vadim Zeitlin Date: Sat, 26 Jan 2008 22:54:47 +0000 (+0000) Subject: set listview extended styles after switching to report view and not only when creatin... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/04d24675d3d26e9ae8af8b4bd390532d03adcbe1 set listview extended styles after switching to report view and not only when creating it (blind fix for bug 1874996) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/msw/listctrl.h b/include/wx/msw/listctrl.h index 00583ea8a3..b63269dbbe 100644 --- a/include/wx/msw/listctrl.h +++ b/include/wx/msw/listctrl.h @@ -442,6 +442,11 @@ private: // process NM_CUSTOMDRAW notification message WXLPARAM OnCustomDraw(WXLPARAM lParam); + // set the extended styles for the control (used by Create() and + // UpdateStyle()), only should be called if InReportView() + void MSWSetExListStyles(); + + DECLARE_DYNAMIC_CLASS(wxListCtrl) DECLARE_EVENT_TABLE() DECLARE_NO_COPY_CLASS(wxListCtrl) diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index cdc5123074..84eafb3d90 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -338,9 +338,17 @@ bool wxListCtrl::Create(wxWindow *parent, // GetTextColour will always return black SetTextColour(GetDefaultAttributes().colFg); + if ( InReportView() ) + MSWSetExListStyles(); + + return true; +} + +void wxListCtrl::MSWSetExListStyles() +{ // for comctl32.dll v 4.70+ we want to have some non default extended // styles because it's prettier (and also because wxGTK does it like this) - if ( InReportView() && wxApp::GetComCtl32Version() >= 470 ) + if ( wxApp::GetComCtl32Version() >= 470 ) { ::SendMessage ( @@ -354,8 +362,6 @@ bool wxListCtrl::Create(wxWindow *parent, LVS_EX_HEADERDRAGDROP ); } - - return true; } WXDWORD wxListCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const @@ -454,6 +460,11 @@ void wxListCtrl::UpdateStyle() if ( dwStyleOld != dwStyleNew ) { ::SetWindowLong(GetHwnd(), GWL_STYLE, dwStyleNew); + + // if we switched to the report view, set the extended styles for + // it too + if ( !(dwStyleOld & LVS_REPORT) && (dwStyleNew & LVS_REPORT) ) + MSWSetExListStyles(); } } }