Amb*_*131 2 winapi window-position
我有点不确定调用 GetWindowPlacement() 函数的一些返回值的含义,所以我需要您的帮助。
我将调用它来获取隐藏窗口的正常尺寸。
首先,showCmd字段的值从哪里来?在返回结构(WINDOWPLACement 结构)的 Microsoft 文档中,所有可能值的描述都使用动词/动作词;例如,“SW_MAXIMIZE:最大化指定窗口”或“SW_SHOWNOACTIVATE:以最新的大小和位置显示窗口” ”。
我想获取隐藏窗口的尺寸而不先取消隐藏/恢复它,因此对于动词,似乎我必须在调用 GetWindowPlacement 之前调用 SetWindowPlacement() 并将 showCmd 设置为 SW_SHOWNOACTIVATE 。那是对的吗?
那么我是否正确理解该字段获取其各种值的主要(也许是唯一)方式是通过在某处显式调用 SetWindowPlacement() ?
我的第二个问题与 rcNormalPosition 返回值有关。这些数据包括窗户装饰,还是客户价值?
感谢您的时间!
showCmd结构体成员的含义WINDOWPLACEMENT有点令人困惑,因为 Win32 正在SW_*重用ShowWindow().
幸运的是,其含义已记录在GetWindowPlacement()函数中。
如果hWnd参数标识的窗口最大化,则showCmd成员为SW_SHOWMAXIMIZED。如果窗口最小化,则 showCmd 为 SW_SHOWMINIMIZED。否则,它是SW_SHOWNORMAL。
因此,根据返回的这 3 个值中的哪一个,您可以判断窗口当前是最大化、最小化还是正常(恢复)。如果您想知道正常的放置位置是什么,您可以使用会员rcNormalPosition。SetWindowPlacement()您根本不需要打电话。
GetWindowPlacement()但是,请注意返回工作区坐标而不是屏幕坐标的警告,后者根据任务栏位置和大小而有所不同。GetWindowPlacement()如果您仅使用调用返回的坐标,这不是问题SetWindowPlacement()。否则,您可能必须找到一种从工作空间转换为屏幕坐标的方法。
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |