c++ - 如何将模态位置设置为屏幕左下角?
问题描述
我正在使用 WinApi 和 C++,我正在尝试将模式的位置设置到屏幕的左下角,但我不知道如何。我希望这个程序适用于不同的屏幕分辨率并考虑到任务栏(模式必须在它的正上方)。我目前使用这个设置窗口位置:
SetWindowPos( GetHwnd(), HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE );
解决方案
您可以使用MonitorFromWindow检索显示窗口的监视器的句柄。
然后使用GetMonitorInfo获取该监视器的MONITORINFO。
在 MONITORINFO 中,您将找到RECT rcWork
描述工作区域的信息,即不包括任务栏,无论它在哪里。
使用GetWindowRect找出窗口的大小并将其放在rcWork
.
请注意,在这种情况下您不应该使用SWP_NOMOVE
,因为这
保留当前位置(忽略 X 和 Y 参数)。
推荐阅读
- node.js - 路由和端点的区别?
- javascript - Drupal 更新后未定义 jQuery
- jquery - 使用 jquery 将句柄悬停在嵌套元素上
- sql - 如何使用 WHERE 子句提取最大值和最小值?
- c# - 出于某种原因,当我重新激活对象池中的对象时,它们是静态的吗?
- batch-file - 通过批处理文件从列表中复制文件的问题
- django - 文件下载后重定向或刷新页面Django
- sql-server - 带有 DBeaver 的 SQLServer。用户“sa”登录失败。客户端连接 ID:
- apache-atlas - 无法将示例数据导入 Apache 地图集
- python - 如何在张量流中将“张量”转换为“numpy”数组?