【问题标题】:Set Font Size for HFONT using DEFAULT_GUI_FONT使用 DEFAULT_GUI_FONT 为 HFONT 设置字体大小
【发布时间】:2014-09-06 20:22:24
【问题描述】:

在我的对话框中,我将字体设置为默认的 GUI 字体,但是我需要手动将字体大小设置为 15。 我该怎么做?

HFONT   myQueryFont;
myQueryFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
// set font size here
SendMessage(this->hwndQuery,WM_SETFONT,(WPARAM)myQueryFont,FALSE);

【问题讨论】:

  • GetObject,根据口味调整LOGFONT结构,CreateFontIndirect
  • 详细?请不要在没有提供有用答案的情况下投票。根据您的描述,我在任何地方都找不到合适的工作示例。
  • LOGFONT 结构描述了字体的所有方面,每个方面都在一个单独的字段中。特别是,LOGFONT::lfHeight 确定字体大小。 GetObject(fontHandle) 用句柄表示的字体信息填充LOGFONT 结构。 CreateFontIndirect 以填充的LOGFONT 为参数,并创建一个与描述匹配的字体对象。

标签: c++ windows winapi fonts dialog


【解决方案1】:

您不想使用DEFAULT_GUI_FONTDEFAULT_GUI_FONT is a relic of the past.

不幸的是,没有真正的方法可以在 Windows 上获得“the”系统标准字体。这里有几个问题:国际化、shell/对话框管理器及其假字体 (MS Shell Dlg)、Vista 将默认点大小从 8 更改为 9,等等...

最好的办法是获取消息框字体并使用它。它通过SystemParametersInfo() SPM_GETNONCLIENTMETRICS 函数作为LOGFONT 提供。

(当我用新的发现更新this 时,我需要谈谈这个。)

【讨论】:

    猜你喜欢
    • 2020-03-01
    • 2020-06-12
    • 2017-04-29
    • 2014-10-21
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多