WindowsでTrackPopupMenuで表示されたメニューを閉じるには?
TrackPopupMenu で表示されたメニューを閉じるには、次の方法を使用できます。
- PostMessage または SendMessage 関数で、メニューのあるウィンドウに WM_CANCELMODE メッセージを送信します。これにより、メニュー モードがキャンセルされ、メニューが閉じます。サンプル コードを次に示します。
PostMessage(hWnd, WM_CANCELMODE, 0, 0);
- 指定したメニューフラグでポップアップメニューを使用している場合は、SetMenuDefaultItem関数を用いてデフォルトのメニュー項目を-1に設定することでメニューを閉じることができます。サンプルコードを次に示します。
SetMenuDefaultItem(hMenu, -1, MF_BYPOSITION);
メニューを閉じるだけでメニューハンドルは破棄されないことに注意してください。メニューを閉じた後にメニューハンドルを破棄する必要がある場合は、DestroyMenu 関数を使用できます。サンプル コードを次に示します。
DestroyMenu(hMenu);
作成されたメニューのハンドルでhMenuはTrackPopupMenuの関数から。