什么是Windows系统字体规范

时间:2013-01-09 16:53:47

标签: winapi fonts

我正在尝试根据它的当前字体重新调整应用程序的字体大小,为了做到这一点,我将使用WM_GETFONT获取字体并使用等式重新调整大小使用字体的宽度和高度进行输入,问题是它的返回值是系统字体,我不知道该字体的规格。

有谁能告诉我如何获得系统字体的规格? OS的系统字体是否有所不同?

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码检索HFONT的{​​{3}}:

LOGFONT lf = { 0 };
::GetObject( hFont, sizeof( lf ), &lf );

通过它,您可以获得所需的所有信息,并且可以只更改您想要的部分。要获得HFONT,您可以使用LOGFONTstructure

HFONT hFontCustom = ::CreateFontIndirect( &lf );

您还可以考虑使用CreateFontIndirect来检索已经拥有WM_GETFONT结构的SystemParametersInfo,而不是使用LOGFONT,您可以复制,修改和使用NONCLIENTMETRICS structure CreateFontIndirect如上图所示。

至于你的第二个问题,字体设置是每个用户设置,所以即使在同一个安装上有两个不同的用户登录,它也可能不同。