gpt4 book ai didi

c++ - 单独更改我的应用程序的字体平滑而不是全局 Windows 字体平滑设置

转载 作者:行者123 更新时间:2023-11-28 01:09:13 28 4
gpt4 key购买 nike

我有一个用 C++ 编写并使用 Win32-API 的 Windows 应用程序。我想以编程方式更改我的应用程序的字体平滑,从而允许我的应用程序的用户在“无”、“标准”和“cleartype”之间进行选择。

我使用 SystemParametersInfo(SPI_SETFONTSMOOTHING, ... ) 来更改平滑类型,但这会更改 Windows 的全局系统设置,并影响所有其他应用程序。有什么方法可以单独更改我的应用程序的平滑度吗?

编辑:澄清 - 我在我的窗口中嵌入了另一个窗口,因此我无法控制嵌入窗口中的字体。

谢谢

最佳答案

也许有一种更简单的方法,但一种方法是将您绘制时使用的所有字体以及所有控件使用的所有字体更改为关闭抗锯齿的字体。

您可以使用 WM_GETFONTWM_SETFONT获取/设置大多数控件使用的字体(它们都使用 HFONT 对象句柄)。

您可以使用 GetObject得到 LOGFONT HFONT 的结构,然后调整 LOGFONT 上的抗锯齿标志,然后通过 CreateFontIndirect 创建一个新的 HFONT . (不要忘记在某处销毁字体,在没有控件再使用它之后。)

还值得记住的是,某些字体可能强制启用抗锯齿或清晰字体。因此,在编辑 LOGFONT 结构时,您可能需要更改字体名称和标志。

关于c++ - 单独更改我的应用程序的字体平滑而不是全局 Windows 字体平滑设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347873/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com