win32编程,如何确定程序窗口被最小化,有此类的消息吗?
2个回答
推荐于2016-10-18
展开全部
这与语言无关,是win32 api的相关内容。不过为举例方便,以MFC来说明。
要捕获用户点击最小化按钮的话,这个没有单独的消息,可以通过捕获WM_SIZE消息、再在handler中检查调用参数wParam,如果值为1,即为点击了最小化按钮。(具体取值可查看winuser.h)。
要检查窗口是否为最小化状态,在MFC中CWnd类的属性中,IsIconic为true即是该实例被最小化。win32api也提供一个原型为BOOL IsIconic(HWND hWnd) 的API函数(头文件也是winuser.h),可以直接根据hWnd来查该窗口对象的最小化状态。
要捕获用户点击最小化按钮的话,这个没有单独的消息,可以通过捕获WM_SIZE消息、再在handler中检查调用参数wParam,如果值为1,即为点击了最小化按钮。(具体取值可查看winuser.h)。
要检查窗口是否为最小化状态,在MFC中CWnd类的属性中,IsIconic为true即是该实例被最小化。win32api也提供一个原型为BOOL IsIconic(HWND hWnd) 的API函数(头文件也是winuser.h),可以直接根据hWnd来查该窗口对象的最小化状态。
追问
用WM_SIZE这个消息的话,是在窗口最小化之后才处理WM_SIZE之后的相关代码,但我是希望在窗口最小化之前就显示一个“是否需要最小化”的MessageBox(),上百度百科查了一下,上面说可以处理WM_SYSCOMMAND消息来实现,但是具体应该怎么处理?比如wParam和lParam参数的值是什么的时候说明用户点击了系统菜单的最小化呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询