2011-05-17 264 views
1

我創建這樣的上下文菜單:右鍵單擊

資源文件:

IDR_CONTEXT MENU 
BEGIN 
    POPUP "" 
    BEGIN 
     MENUITEM "Add &last", ID_ADDLAST 
     MENUITEM "Add &before", ID_ADDBEFORE 
     MENUITEM "Add &after", ID_ADDAFTER 
     MENUITEM "&Remove",  ID_REMOVE 
    END 
END 

而且窗口過程

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { 
    switch (message) { 
     case WM_RBUTTONDOWN: 
      { 
       POINT cursor; 
       GetCursorPos(&cursor); 
       TrackPopupMenu((HMENU) GetSubMenu(LoadMenu(hInstance, MAKEINTRESOURCE(IDR_CONTEXT)), 0), TPM_LEFTALIGN, cursor.x, cursor.y, 0, hWnd, NULL); 
      } 
      break; 
    } 
} 

但是這並未不允許我右鍵單擊上下文菜單中的項目。我只能點擊它們... 如何解決這個問題?

回答

1

如果您閱讀the documentation page for TrackPopupMenu,您會發現一個標記爲「用戶可以使用左右鼠標按鈕選擇菜單項」。

+0

謝謝!爲什麼我忘記查看文檔? – Midas 2011-05-17 18:50:50

+2

@Midas:因爲SO通常更方便?但是,僅僅要求文件留下的內容不清楚,就要求提供幫助。 – 2011-05-17 19:35:25