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
This commit is contained in:
Vadim Zeitlin 2011-12-27 01:21:33 +00:00
parent c7155388f5
commit e170515a9b

View File

@ -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;