繁体   English   中英

如何检测窗口已最大化?

[英]How to detect the window has been maximized?

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

SetWindowLong(hwnd, GWL_WNDPROC, (LONG)WindowProc);

但是此功能失败,并显示错误“访问被拒绝”。 这是有原因的。 在您不拥有的窗口中更改某些内容不是很明智。

所以我该怎么做?

实际上,当窗口将要最小化或最大化时,您会收到通知。 您将需要使用SetWindowsHook过程来安装和收听WH_CBT_Hook。

以下是有关WIndowsHooks的一般信息:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Hooks/AboutHooks.asp

这是一个线程,向您展示如何在VB中做一些更简单的操作(对于WH_Mouse_Hook):

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=581752&SiteID=1

希望这可以帮助,

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM