我目前正在尝试根据当前字体重新调整应用程序的字体大小,为此,我将使用WM_GETFONT
字体的宽度和高度来获取字体并使用等式重新调整其大小对于输入,问题是它的返回值是系统字体,我不知道该字体的规格。
谁能告诉我如何获取系统字体的规格?操作系统之间的系统字体是否不同?
您可以使用以下代码检索LOGFONT
结构:HFONT
LOGFONT lf = { 0 };
::GetObject( hFont, sizeof( lf ), &lf );
有了它,您就拥有了所需的所有信息,并且可以只更改您想要的部分。要获得HFONT
回报,您将使用CreateFontIndirect
:
HFONT hFontCustom = ::CreateFontIndirect( &lf );
除了使用之外WM_GETFONT
,您还可以考虑使用SystemParametersInfo
来检索已经具有可以复制、修改和使用的NONCLIENTMETRICS
结构的结构,如上图所示。LOGFONT
CreateFontIndirect
至于您的第二个问题,字体设置是每个用户的设置,因此即使在同一个安装中,两个不同的用户登录,它也可能不同。