我有我的应用程序和第三方应用程序。 而且我需要知道第三方应用程序的窗口已经被最大化。 有什么办法可以知道吗?
起初,我认为我可以使用自己的callback函数来处理这个窗口的事件。
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)。