【问题标题】:What are the windows system font specificationswindows系统字体规格有哪些
【发布时间】:2013-01-09 16:53:47
【问题描述】:

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

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

【问题讨论】:

    标签: winapi fonts


    【解决方案1】:

    您可以使用以下代码为HFONT 检索LOGFONTstructure

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

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

    HFONT hFontCustom = ::CreateFontIndirect( &lf );
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-11
      • 2010-09-17
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多