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