我有一个带有浮动窗口的 Windows 应用程序。我在多显示器设置(FHD、4K)上运行它。该应用程序被标记为系统感知,因此我们选择主监视器的当前 DPI 值并根据该值进行缩放。之后,操作系统位图对其进行缩放。该应用程序在 Windows 10 上运行。
现在,当一个浮动窗口被拖到另一个监视器上时,操作系统会自动对其进行位图缩放,一切正常。
问题是我们有一些没有标题栏的窗口,我们有代码通过从窗口的客户区域拖动来移动这些窗口。当鼠标松开时,我们调用MoveWindow()
API 将窗口移动到目标位置。这在单个监视器上工作正常,但是当我们将窗口放在不同的监视器上时,它不会位图缩放,它似乎丢失了它的放置位置。操作系统似乎只在我们通过标题栏拖动窗口时才进行位图缩放,而不是在以编程方式移动它时。
关于以编程方式移动窗口时如何实现这种自动缩放的任何想法?