当我的WinForm应用程序从主监视器移动到辅助监视器时,这些属性和winapi函数返回的边界(窗口的高度和宽度)值不会改变:
但sshd.conf
与DwmGetWindowAttribute
返回的值会发生巨大变化。
在评论建议后进行编辑:例如,在主监视器 DwmgetWindowAttribute 中返回宽度和高度为DWMWA_EXTENDED_FRAME_BOUNDS
的矩形,其他值返回{{ 1}}。考虑到投影占用7个像素,这是连贯的。但是当窗口移动到辅助监视器时, DwmgetWindowAttribute 返回 292, 100
,其他方法返回相同的306, 107
事实上我的两个显示器的分辨率都是1920 * 1080(但是如果重要的话,比例会有所不同)
问题:为什么会这样发生?只有我或其他人遇到过类似的问题吗?最终我想计算投影大小。还有其他办法吗?
重现:
如果您希望重现此内容,请创建一个winform项目。在构造函数中使用 AllocConsole()分配控制台。为437, 150
添加事件处理程序,并将以下代码添加到事件处理程序:
306, 107