2

我目前正在尝试根据当前字体重新调整应用程序的字体大小,为此,我将使用WM_GETFONT字体的宽度和高度来获取字体并使用等式重新调整其大小对于输入,问题是它的返回值是系统字体,我不知道该字体的规格。

谁能告诉我如何获取系统字体的规格?操作系统之间的系统字体是否不同?

4

1 回答 1

2

您可以使用以下代码检索LOGFONT结构:HFONT

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

有了它,您就拥有了所需的所有信息,并且可以只更改您想要的部分。要获得HFONT回报,您将使用CreateFontIndirect

HFONT hFontCustom = ::CreateFontIndirect( &lf );

除了使用之外WM_GETFONT,您还可以考虑使用SystemParametersInfo来检索已经具有可以复制、修改和使用的NONCLIENTMETRICS结构的结构,如上图所示。LOGFONTCreateFontIndirect

至于您的第二个问题,字体设置是每个用户的设置,因此即使在同一个安装中,两个不同的用户登录,它也可能不同。

于 2013-01-10T00:04:01.580 回答