我有一个使用WS_POPUP
/ WS_EX_APPWINDOW
创建的顶级窗口,因此它使用非标准框架,其标题显示在任务栏上。
但是如果重要的话,我有自定义WM_NCHITTEST
处理程序。
当窗口“折叠到任务栏”(从屏幕上删除)并且用户点击任务栏上的图标/标题时,窗口将收到WM_QUERYOPEN
消息,并由DefWindowProc打开。
但是当窗口打开并且用户点击任务栏中的图标/标题时,窗口才会被取消激活 - 我需要将其折叠。
当鼠标在任务栏中的标题上时,shell是否有任何消息发送到窗口?
我正在尝试重现标准的Windows Shell行为 - 首先单击任务栏的窗口图标显示窗口,然后第二次单击 - 隐藏它。第一部分(揭示)默认工作,但不是第二部分(隐藏)。
更新:以下是我的窗口在屏幕上显示的消息,用户点击任务栏中的标题:
<01287> 00150DAE S WM_NCACTIVATE fActive:False
<01288> 00150DAE R WM_NCACTIVATE fDeactivateOK:True
<01289> 00150DAE S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:False hwndPrevious:(null)
<01290> 00150DAE R WM_ACTIVATE
<01291> 00150DAE S WM_ACTIVATEAPP fActive:False dwThreadID:000041EC
<01292> 00150DAE R WM_ACTIVATEAPP
<01293> 00150DAE S WM_KILLFOCUS hwndGetFocus:(null)
<01294> 00150DAE R WM_KILLFOCUS
<01295> 00150DAE S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
<01296> 00150DAE S WM_IME_NOTIFY dwCommand:IMN_CLOSESTATUSWINDOW dwCommand:00000001 dwData:00000000
<01297> 00150DAE R WM_IME_NOTIFY
<01298> 00150DAE R WM_IME_SETCONTEXT
窗口样式:WS_POPUP | WS_VISIBLE | WS_SYSMENU
Window ex-styles:WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_APPWINDOW
如果重要,窗口看起来像这样:
这只是一个考验。
答案 0 :(得分:2)
您可以尝试将WS_MINIMIZEBOX添加到窗口样式中:WS_POPUP | WS_MINIMIZEBOX。