【发布时间】:2019-06-23 16:17:53
【问题描述】:
我有点不确定调用 GetWindowPlacement() 函数的某些返回值的含义,所以我希望得到您的帮助。
我将调用它来获取隐藏窗口的正常尺寸。
首先,showCmd 字段的值从何而来?在返回结构 (WINDOWPLACEMENT structure) 的 Microsoft 文档中,所有可能值的描述都使用动词/动作词;例如,“SW_MAXIMIZE:最大化指定的窗口”或“SW_SHOWNOACTIVATE:以最近的大小显示一个窗口并且位置。”
我想在不先取消隐藏/恢复它的情况下获取隐藏窗口的尺寸,因此对于动词,我似乎必须在调用 GetWindowPlacement 之前调用 SetWindowPlacement() 并将 showCmd 设置为 SW_SHOWNOACTIVATE。对吗?
那么我是否正确理解该字段获取其各种值的主要(也许是唯一)方式是通过在某处显式调用 SetWindowPlacement()?
我的第二个问题与 rcNormalPosition 返回值有关。这些数据是否包括窗口装饰,或者它们是客户价值?
感谢您的宝贵时间!
【问题讨论】:
-
我会说改用 GetWindowRect()。
-
但是迈克尔,这对隐藏窗口有效吗?
-
我已经找到了第二个问题的答案,所以你可以忽略这部分。
-
@Amby131 它适用于隐藏窗口,但不适用于最小化窗口。对于最小化的窗口,您仍然需要为historical reasons 调用
GetWindowPlacement()。