From: Vadim Zeitlin Date: Tue, 27 Dec 2011 01:21:33 +0000 (+0000) Subject: Fix the size of the font returned by wxTextCtrl::GetStyle() in MSW. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/e170515a9b895080d683dc73b2fdc6299eaae2f6 Fix the size of the font returned by wxTextCtrl::GetStyle() in MSW. CHARFORMAT stores height in 1/20th of a point, not pixels. Add the correct conversion to the units used by LOGFONT. See #13384. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 4792c8de81..c963a170b3 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -2740,7 +2740,10 @@ bool wxTextCtrl::GetStyle(long position, wxTextAttr& style) LOGFONT lf; - lf.lfHeight = cf.yHeight; + // Convert the height from the units of 1/20th of the point in which + // CHARFORMAT stores it to pixel-based units used by LOGFONT. + const wxCoord ppi = wxClientDC(this).GetPPI().y; + lf.lfHeight = -MulDiv(cf.yHeight/2, ppi, 72); lf.lfWidth = 0; lf.lfCharSet = ANSI_CHARSET; // FIXME: how to get correct charset? lf.lfClipPrecision = 0;