Fix wxSTC compilation without precompilead headers

Get and release the HDC, instead of using WindowHDC. Because stc.cpp is used on
all platforms, don't include wxMSW specific wx/msw/private.h.

Also use const int for the variables.
This commit is contained in:
Maarten Bent
2019-10-10 20:26:19 +02:00
parent 5547473acd
commit a0359a23ff
2 changed files with 14 additions and 10 deletions

View File

@@ -241,12 +241,14 @@ bool wxStyledTextCtrl::Create(wxWindow *parent,
#endif
#ifdef __WXMSW__
// Set zoom for DPI
double baseDPI = ::GetDeviceCaps(WindowHDC(parent->GetHWND()), LOGPIXELSY);
double activeDPI = parent->GetDPI().y;
// Set initial zoom for active DPI
const HDC hdc = ::GetDC(parent->GetHWND());
const int baseDPI = ::GetDeviceCaps(hdc, LOGPIXELSY);
const int activeDPI = parent->GetDPI().y;
::ReleaseDC(parent->GetHWND(), hdc);
int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT);
int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI);
const int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT);
const int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI);
SetZoom(GetZoom() + (ptSizeNew - ptSizeOld));
#endif

View File

@@ -241,12 +241,14 @@ bool wxStyledTextCtrl::Create(wxWindow *parent,
#endif
#ifdef __WXMSW__
// Set zoom for DPI
double baseDPI = ::GetDeviceCaps(WindowHDC(parent->GetHWND()), LOGPIXELSY);
double activeDPI = parent->GetDPI().y;
// Set initial zoom for active DPI
const HDC hdc = ::GetDC(parent->GetHWND());
const int baseDPI = ::GetDeviceCaps(hdc, LOGPIXELSY);
const int activeDPI = parent->GetDPI().y;
::ReleaseDC(parent->GetHWND(), hdc);
int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT);
int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI);
const int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT);
const int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI);
SetZoom(GetZoom() + (ptSizeNew - ptSizeOld));
#endif