gpt4 book ai didi

windows - 在 Windows 8 上声明每个窗口的高 DPI 感知

转载 作者:可可西里 更新时间:2023-11-01 13:54:38 32 4
gpt4 key购买 nike

我正在开发可在主机(如 Cubase)中运行的音频插件,并且希望添加高 DPI 支持。这是有问题的,因为我所知道的所有主机应用程序都将自己声明为非高 DPI 感知,因此所有窗口都由 DWM 自动缩放。我正在寻找一种方法来关闭插件窗口的 DWM DPI 缩放,即使主机本身不支持 DPI(因此它对所有其他窗口使用 DWM DPI 缩放)。有谁知道这是否可能?

对于使用大量插件的应用程序,例如音频主机,这是一个非常现实的问题,因为它们不能直接声明自己具有高 DPI 感知能力:这会破坏所有现有的插件。因此,除非 Windows 提供解决方案,否则我们总是停留在 96 dpi 的状态。基本上我认为我们需要一个比设置每个进程更细粒度的解决方案,这样主机和插件就可以单独声明它们的感知级别。

如果目前无法完成此操作,是否可以联系 Microsoft 工程师以便将其添加到 future 版本的 Windows 中?

最佳答案

Windows 10 周年更新以来,现在可以感知每个窗口的 DPI。一个新的 API SetThreadDpiAwarenessContext() 可用于设置每个窗口和每个线程的 DPI 感知。这是按如下方式完成的。

  • 线程现在可以动态更改其 DPI awarensss。
  • 线程创建的窗口的 DPI 感知将取决于创建窗口时调用线程的 DPI 感知。
  • 当调用窗口的窗口过程时,线程会自动切换到创建窗口时正在使用的 DPI 感知上下文。

阅读以下引用资料

关于windows - 在 Windows 8 上声明每个窗口的高 DPI 感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26647908/

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