【问题标题】:Right clicking in WinAPI context menu在 WinAPI 上下文菜单中单击鼠标右键
【发布时间】:2011-08-27 10:35:17
【问题描述】:

我创建了一个这样的上下文菜单:

资源文件:

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;
    }
}

但这不允许我右键单击上下文菜单中的项目。我只能左键单击它们... 如何解决这个问题?

【问题讨论】:

    标签: c winapi contextmenu


    【解决方案1】:

    如果您阅读the documentation page for TrackPopupMenu,您会发现一个标记为“用户可以使用鼠标左键和右键选择菜单项。”

    【讨论】:

    • 谢谢!为什么我还是忘了看文档?
    • @Midas:因为 SO 通常更方便?但是,只在文档中不清楚的地方寻求帮助是有礼貌的。
    猜你喜欢
    • 2011-01-17
    • 2010-10-16
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 2010-12-15
    • 2017-04-22
    相关资源
    最近更新 更多