相关疑难解决方法(0)

GetWindowRect返回包含"不可见"边框的大小

我正在开发一个应用程序,以网格样式在屏幕上定位窗口.在Windows 10上运行时,窗口之间存在巨大差距.进一步调查显示GetWindowRect返回意外值,包括一个不可见的边框,但我不能让它返回带有可见边框的实际值.

1)这个帖子暗示这是设计的,你可以通过链接winver = 6来"修复"它.我的环境不允许这样,但我已经试图改变PE MajorOperatingSystemVersion和MajorSubsystemVersion6个无影响

2)同一个线程还建议使用DwmGetWindowAttributewith DWMWA_EXTENDED_FRAME_BOUNDS从DWM获取真实坐标,这有效,但意味着改变到达窗口坐标的每个地方.它也不允许设置值,让我们反转过程以便能够设置窗口大小.

3)这个问题表明在这个过程中缺乏DPI意识.既没有在清单中设置DPI感知标志,也没有调用SetProcessDpiAwareness任何结果.

4)一时兴起,我还尝试添加Windows Vista,7,8,8.1和10兼容性标志,并且Windows主题清单没有任何变化.

全屏 这个窗口移动到0x0,1280x1024,据说可以填满整个屏幕,当查询坐标时,我们得到相同的值.然而,窗口实际上是14像素更窄,以考虑旧版Windows上的边框.

我怎样才能说服Windows让我使用真实的窗口坐标?

vb6 winapi dwm windows-10

21
推荐指数
1
解决办法
6715
查看次数

标签 统计

dwm ×1

vb6 ×1

winapi ×1

windows-10 ×1