ユーザーがTrackPopupMenuを使用してタスクバー アイコンをクリックしたときに表示されるポップアップ メニューを作成しました。メニューの外側をクリックして選択項目をキャンセルするまで、コードは正常に機能します。次に、アイコンを左/右クリックするたびに、メニューがポップアップし、表示される前にすぐに消えます (TrackPopupMenu がすぐに 0 を返すように見えます)。MDSN は TrackPopupMenu の後に追加することで修正する方法を教えてくれましたが、PostMessage(hDlg, WM_NULL, 0, 0);
うまくいきません。
これが私のコードです:
case WM_LBUTTONUP :
case WM_RBUTTONUP :
POINT p;
GetCursorPos(&p);
HMENU hPopupMenu = CreatePopupMenu();
AppendMenu(hPopupMenu, MF_ENABLED, ID_ADDMUSIC, L"Add music" );
AppendMenu(hPopupMenu, MF_ENABLED, ID_REMOVEMUSIC, L"Remove music");
SetForegroundWindow(msgInfo->hwnd);
result = TrackPopupMenu(hPopupMenu, TPM_BOTTOMALIGN | TPM_RIGHTALIGN | TPM_NONOTIFY |
TPM_RETURNCMD | TPM_RIGHTBUTTON | TPM_VERNEGANIMATION,
p.x, p.y, 0, msgInfo->hwnd, NULL);
PostMessageW(msgInfo->hwnd, WM_NULL, 0, 0);
DestroyMenu(hPopupMenu);