C++ Windows API - 如何检索字体缩放百分比
Posted
技术标签:
【中文标题】C++ Windows API - 如何检索字体缩放百分比【英文标题】:C++ Windows API - How to retrieve font scaling percentage 【发布时间】:2020-11-11 11:20:33 【问题描述】:我想在 C++ Windows API 应用程序中检索 “使文本变大” 百分比。我知道如何检索缩放 (DPI) 因子,但我还想包括字体缩放百分比(请参见附图,上限值,而不是下限值)。
最终,我想制作保留用户字体和 DPI 缩放设置的应用程序,以完全支持辅助功能。目前,字体在.rc
文件中指定,如下所示
FONT 8, "MS Shell Dlg 2", 0, 0, 0x0
但即使省略 FONT 语句,更改“使文本变大”设置时字体仍然不会改变。
【问题讨论】:
GetScaleFactorForMonitor ? docs.microsoft.com/en-us/windows/win32/api/shellscalingapi/… @Simon Mourier 据我了解,设置仅返回第二个值,因此 DPI 缩放,而不是字体大小 有一个winrt API:docs.microsoft.com/en-us/uwp/api/… 否则TextScaleFactor
注册表项中的TextScaleFactor
值HKEY_CURRENT_USER\SOFTWARE\Microsoft\Accessibility
(未正式记录)
@SimonMourier 非常感谢,这正是我一直在寻找但找不到的东西!如果您愿意,请发布答案以供将来参考和一些声誉:)
【参考方案1】:
对于“让一切都变大”部分,您可以使用GetScaleFactorForMonitor
获取特定监视器的比例因子。
对于“使文本变大”部分,您可以使用 WinRT 静态属性:UISettings.TextScaleFactor
获取系统文本大小设置的值。
否则也可以使用TextScaleFactor
读取后者
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Accessibility
注册表项中的 DWORD 属性(但未正式记录)。
【讨论】:
以上是关于C++ Windows API - 如何检索字体缩放百分比的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C++ 在 Windows 上检索分页文件大小的“最小允许”/“推荐”/“当前分配”值?
c语言中windows 调用api实现字体颜色,字体,以及动画