2011-05-17 168 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