”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用SetWindowPos准确地将窗口定位在多个显示器上?

如何使用SetWindowPos准确地将窗口定位在多个显示器上?

发布于2025-03-25
浏览:736

[2

setWindowPos How Can I Accurately Position Windows Across Multiple Monitors Using SetWindowPos?
跨多个显示器的精确窗口放置

使用

有效地将窗口定位在多个显示器上,需要对系统显示配置和虚拟屏幕概念的细微理解。

理解系统显示和虚拟屏幕

[2 主监视器的原点是(0,0)。 次级监视器具有负X坐标(主要的)或正X坐标(主要的右侧)。 [2

这是一个概念显示,涵盖了所有连接的显示器。它的起源是最左边监视器的左上角。 它的宽度是所有监视器宽度的总和,其高度是最高监视器的高度。

[2

屏幕类提供检索重要屏幕信息的方法:

:标识包含给定窗口(hwnd)的屏幕。

:返回包含指定矩形的屏幕界

screen.deviceName :检索屏幕的设备名称,可用于图形上下文创建。

利用本机win32函数:

这些功能提供了用于监视标识的替代方法:

monitalfromwindow :返回与窗口关联的监视器句柄。 monitalfrompoint :返回给定点的监视器句柄。

setWindowpos 定位窗口,并监视坐标

    使用
  • 将窗口定位在特定的监视器上,请按照以下步骤:
  • 标识目标监视器:使用上述方法获得所需的监视器的Hmonitor
  • 计算虚拟屏幕坐标:根据监视器位置相对于主监视器调整窗口的X坐标。 减去主要监视器的总宽度的总宽度。
使用

setWindowPos 在[

setWindowpos

中使用计算出的虚拟屏幕坐标。

setWindowPos(hwnd,hwndinsertafter,x,y,cx,cy,cy,swp_nozorder | swp_nosize | swp_showwindow)
  • 通过使用
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3