如何检测窗口是否已经最大化?

Ov3*_*oad 6 c c++ windows winapi

我有我的应用程序和第三方应用程序。我需要知道第三方应用程序的窗口已经最大化。有什么办法可以知道吗?
起初,我认为我可以使用自己的回调函数来处理该窗口的事件。

SetWindowLong(hwnd, GWL_WNDPROC, (LONG)WindowProc);
Run Code Online (Sandbox Code Playgroud)

但此功能失败并出现错误“访问被拒绝”。这是有原因的。更改窗口中不属于您的内容并不是很明智。

所以我该怎么做?

use*_*458 5

使用GetWindowPlacement函数。确保在调用 GetWindowPlacement 之前将 WINDOWPLACMENT 的 length 成员设置为 sizeof(WINDOWPLACement)。

如果窗口最大化,则返回的 WINDOWPLACEMENT 结构的 showCmd 字段应等于 SW_MAXIMIZE (3)。