我創建了一個彈出式菜單,當用戶通過使用TrackPopupMenu單擊任務欄圖標時將顯示該菜單。 代碼工作正常,直到我點擊菜單外部取消選擇項目。然後,每當我離開/右鍵點擊圖標,彈出菜單並立即消失,然後我看到它(看起來像TrackPopupMenu立即返回0)。 MDSN通過在TrackPopupMenu之後添加PostMessage(hDlg, WM_NULL, 0, 0);
來解決問題,但它不起作用。TrackMenuPopup:彈出菜單不斷消失
這裏是我的代碼:
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);