Windows 10 DPI处理和标准对话框

时间:2017-06-22 10:09:09

标签: windows winapi windows-10 dpi

我正在修改我的应用程序以支持高DPI值(高于100%/ 96dpi)。

我修改了应用程序的清单文件以包含:

<dpiAware>true/PM</dpiAware>

我能够处理自己应用程序表单的所有DPI缩放,但如何通过WinAPI处理标准窗口对话框(字体选择器,打开文件,文件夹浏览器等)。有没有办法手动通知窗口我只希望这些对话框自动缩放为更高的DPI?

*更新*

使用&#34; SetThreadDpiAwarenessContext&#34; WinAPI函数,windows确实可以处理缩放,但它通过缩放图像(模糊文本)而不是缩放控件来实现(请记住,这些是标准的窗口控件,就像通过调用&#34生成的那样; GetOpenFileNameW&# 34。)

任何想法如何使窗口绘制正确缩放的开放文件对话框没有模糊文本?

1 个答案:

答案 0 :(得分:0)

谢谢@ zett42,总结未来访客的链接答案,Win 10 Aniv。版本介绍了一个新的&#34; SetThreadDpiAwarenessContext()&#34;用于设置每线程DPI感知的功能,允许您从单独的线程打开标准窗口对话框,并使Windows DPI设置自动处理对话框上的缩放。