2016-09-27 21 views
4

私はWS_POPUP/WS_EX_APPWINDOWで作成されたトップレベルのウィンドウを持っていますので、非標準のフレームを使用し、そのキャプションはタスクバーに表示されます。 ただし、私はカスタムWM_NCHITTESTハンドラを持っています。WM_QUERYHIDE/CLOSEまたは同様のメッセージがありますか?

ウィンドウがタスクバーに折りたたまれて(画面から削除され)、ユーザーがタスクバーのアイコン/キャプションをクリックすると、ウィンドウにはWM_QUERYOPENというメッセージが表示され、DefWindowProcによって開かれます。

しかし、ウィンドウが開かれ、ユーザーがタスクバーのアイコン/キャプションをクリックすると、ウィンドウが非アクティブになります。私はそれを折りたたむ必要があります。

マウスがタスクバーのキャプション上にあるときに、シェルからウィンドウに送信されるメッセージはありますか?

標準的なWindowsシェルの動作を再現しようとしています - まず、タスクバーのウィンドウアイコンをクリックするとウィンドウが表示され、もう一度クリックすると非表示になります。最初の部分(公開)はデフォルトでは動作しますが、2番目の動作(隠蔽)では動作しません。

<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

ウィンドウの元のスタイル:WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_APPWINDOW

UPDATE:それはタスクバーにそのキャプションの画面とユーザークリックにあるときにここに私のウィンドウが取得するメッセージです

このような場合、ウィンドウは次のようになります。

これは単なるテストです。

+0

私は、[WM_SIZE](https://msdn.microsoft.com/en-us/library/windows/desktop/ms632646.aspx)が遅すぎる(つまり、ウィンドウが既に最小化されている)しかし、おそらく[WM_WINDOWPOSCHANGING](https://msdn.microsoft.com/en-us/library/windows/desktop/ms632653.aspx)が、文書化されていない 'SWP_STATECHANGED'フラグを使って参考になるかもしれません。 – IInspectable

+0

ウィンドウが画面上にあり、タスクバーのアイコンをクリックすると、その位置は変化しません。実際には、私はWM_POSWINDOWCHANGINGメッセージは表示されません。フォーカスとしてWM_ACTIVATEのみがウィンドウからタスクバーに移動します。 –

+0

システムメニューがなくても、ウィンドウに[WM_SYSCOMMAND](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646360.aspx)メッセージが表示されますか? – IInspectable

答えて

2

WS_MINIMIZEBOXを次のようにウィンドウスタイルに追加できます。WS_POPUP | WS_MINIMIZEBOX。

関連する問題