有关GDI画字体高度和所设定的高度不一致的问题
问题是这样的,用CreateFontIndirect创建的HFONT,使用TextOut画的字体的高度和LOGFONT中所设定的高度不一致。这个情况只存在与个别字库中,比如我正在使用的微软雅黑字库。
代码如下:
LOGFONT lf;
ZeroMemory(&lf, sizeof(lf));
lf.lfHeight = -24;
lf.lfWidth = 0;
lf.lfEscapement = 0;
lf.lfOrientation = 0;
lf.lfStrikeOut = FALSE;
lf.lfCharSet = DEFAULT_CHARSET;
lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
lf.lfQuality = ANTIALIASED_QUALITY;
lf.lfPitchAndFamily = VARIABLE_PITCH;
lstrcpy(lf.lfFaceName, "微软雅黑");
hfont = CreateFontIndirect(&lf);
//Draw
CString str = "中国人";
TextOut(dc, 0, 0, (LPCTSTR)str, str.GetLength());
这里画出的字体的高度是28,而我在LOGFONT中设定的高度是24。
有谁知道如何解决这个问题?
先谢了~~~