【发布时间】:2019-07-11 15:42:40
【问题描述】:
我遇到的问题是,当工具栏从 4k 拖到标准 def 时,我会丢失工具栏。在 200% 缩放的桌面上监控(它们只是消失了)(源自 CMFCToolbar)。这看起来有点像 MFC 错误,因为我没有处理拖动过程,而是在应用程序上。启动它确实会通过这样做检查窗口是否在桌面上 -
int width = GetSystemMetrics(SM_CXVIRTUALSCREEN);
int height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
这给了我 11520(不正确)x 2160(正确)。
我的左侧是 4K 显示器,右侧是 1080p 显示器。桌面缩放比例为 200%
通过每个显示器缩放,我得到 5760 x 2160。这是合理的;该应用程序位于 4k 显示器上。
(在不支持 DPI 的情况下,我得到 5760 x 1080。它不应该告诉我我的主显示器是 1920 吗?)
所以 (1) 这些 API 中是否有错误告诉我我的桌面大小? (2) 我是否需要深入研究 MFC 源代码以了解为什么它不能处理从高清屏幕拖动到 sd 屏幕?
【问题讨论】:
-
我遇到了同样的问题,在我看来
GetSystemMetrics(SM_CXVIRTUALSCREEN)不适用于非常大的分辨率