我有我的应用程序和第三方应用程序。我需要知道第三方应用程序的窗口已经最大化。有什么办法知道吗?
起初,我以为我可以使用自己的回调函数来处理这个窗口的事件。
SetWindowLong(hwnd, GWL_WNDPROC, (LONG)WindowProc);
但此功能失败并出现错误“访问被拒绝”。这是有原因的。在窗口中更改您不拥有的东西并不是很明智。
所以我该怎么做?
当窗口即将被最小化或最大化时,您实际上可以得到通知。您将需要使用 SetWindowsHook 过程来安装和收听 WH_CBT_Hook。
以下是有关 WIndowsHooks 的一般信息:
这是一个线程,向您展示如何在 VB 中做一些类似的事情(对于 WH_Mouse_Hook):
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=581752&SiteID=1
希望这可以帮助,
使用GetWindowPlacement函数。确保在调用 GetWindowPlacement 之前将 WINDOWPLACEMENT 的长度成员设置为 sizeof(WINDOWPLACEMENT)。
如果窗口最大化,则返回的 WINDOWPLACEMENT 结构的 showCmd 字段应该等于 SW_MAXIMIZE (3)。