Simplify changing window styles in wxMSW code

Add wxMSWWinStyleUpdater and wxMSWWinExStyleUpdater helper classes which
allow writing code changing GWL_STYLE and GWL_EXSTYLE bits,
respectively, in a shorter and more clear way.

There should be no real changes in behaviour.
This commit is contained in:
Vadim Zeitlin
2017-12-09 23:47:05 +01:00
parent 588ae3744c
commit 17105cfd07
17 changed files with 206 additions and 131 deletions

View File

@@ -34,6 +34,7 @@
#include "wx/dynlib.h"
#include "wx/msw/private.h"
#include "wx/msw/private/winstyle.h"
#if wxUSE_UXTHEME
#include "wx/msw/uxtheme.h"
@@ -913,9 +914,7 @@ void wxTextEntry::ForceUpper()
{
ConvertToUpperCase();
const HWND hwnd = GetEditHwnd();
const LONG styleOld = ::GetWindowLong(hwnd, GWL_STYLE);
::SetWindowLong(hwnd, GWL_STYLE, styleOld | ES_UPPERCASE);
wxMSWWinStyleUpdater(GetEditHwnd()).TurnOn(ES_UPPERCASE);
}
// ----------------------------------------------------------------------------