【发布时间】:2020-01-10 23:53:02
【问题描述】:
我正在尝试在 C++ 中正确地对应用程序进行 DPI 缩放,但我无法让它与通过从 commdlg.h 调用 OPENFILENAMEW 创建的文件选择器窗口一起工作。
我使用三台显示器:两台 1.0 dpi,一台 2.5 dpi。对我来说,无论我的应用程序在哪个窗口中,文件选择器都只能以 1.0 DPI 打开。因此,当我将文件选择器拖到 2.5 dpi 监视器时,窗口太小而难以阅读。当我断开其他显示器时,我只能以 2.5 dpi 进行缩放。我查看了 OPENFILENAMEW 的文档,并且有一个标志允许手动调整对话框的大小,仅此而已。
它必须在某个点注册 dpi 以进行缩放,但我找不到它。 有谁知道怎么做?
【问题讨论】:
-
如果您使用的是 Visual Studio,您需要启用“Manifest”文件的生成,然后在 Project->Properties->Manifest Tools->Input and Output 中选择“Per Monitor High DPI “DPI Awareness”选项中的“Aware”。
-
谢谢阿德里安!这并没有完全解决我在监视器之间的缩放问题,但它让我研究了解决问题的 API。
标签: c++ windows dialog dpi highdpi