MFC:PC上的字体太大但笔记本电脑上的确定

时间:2012-08-06 18:18:50

标签: c++ user-interface mfc fonts scaling

我正在创建一个比平常更大的CFont:

font1.CreateFont(54, 0, 0, 0, FW_HEAVY, false, false, 0, ANSI_CHARSET, 
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH|FF_MODERN,
_T("Courier New"));

并设置一个CEdit控件来使用它:

m_cEditLimit.SetFont(&font1);

当我在编写应用程序时,这个字体在笔记本电脑上显示正常,但现在我在普通电脑上进行测试它显示的太大而且不适合:

enter image description here

如何在运行应用程序的每台电脑上使字体看起来很好?

1 个答案:

答案 0 :(得分:4)

不要使用硬编码54作为字体大小,而是尝试根据点数计算大小:

int points = 32;
pix = -MulDiv(points, GetDeviceCaps(hdc, LOGPIXELSY), 72);

根据需要调整points,直到字体适合。现在它应该在系统之间保持一致。