C++ Windows API - 如何检索字体缩放百分比

cam*_*ski 4 c++ winapi

我想检索C++ Windows API 应用程序中的“使文本变大”百分比。我知道如何检索缩放(DPI)系数,但我还想包括字体缩放百分比(请参阅附图,上值,而不是下值)。

最终,我想要制作保留用户字体和 DPI 缩放设置的应用程序,以便完全支持辅助功能。目前,字体是在.rc文件中指定的,如下所示

FONT 8, "MS Shell Dlg 2", 0, 0, 0x0
Run Code Online (Sandbox Code Playgroud)

但即使省略 FONT 语句,更改“使文本更大”设置时字体仍然不会改变。

在此输入图像描述

Sim*_*ier 5

对于“使所有内容变大”部分,您可以使用GetScaleFactorForMonitor

获取特定显示器的比例因子。

对于“使文本变大”部分,您可以使用 WinRT 静态属性:UISettings.TextScaleFactor

获取系统文本大小设置的值。

否则,也可以使用注册表项TextScaleFactor 中的 DWORD 属性读取后者HKEY_CURRENT_USER\SOFTWARE\Microsoft\Accessibility(但这没有正式记录)。