简体   繁体   English

如何在列表框上右键单击创建上下文菜单?

[英]How to create a context menu on listbox right click?

I have a window with a listbox which I would like to right click an entry in the list box and have certain options displayed in a context menu. 我有一个带有列表框的窗口,我想右键单击列表框中的条目,并在上下文菜单中显示某些选项。 I've looked online but it seems as if I can only get examples in MFC C++, or simply c#. 我看过网上但似乎我只能在MFC C ++中获得示例,或者只是c#。

Is this possible in standard Win32 c++? 这在标准的Win32 c ++中是否可行? I can handle a right click on the listbox via the WM_CONTEXTMENU message, but how can I make a menu appear? 我可以通过WM_CONTEXTMENU消息右键单击列表框,但是如何显示菜单呢?

I figured it out, thanks to Bhargav Bhat's comment about the related question. 我想通了,感谢Bhargav Bhat对相关问题的评论。

Handle right click on the listbox via checking for WM_CONTEXTMENU in your WndProc. 通过检查WndProc中的WM_CONTEXTMENU,右键单击列表框。

Grab the handle to the window via the wParam parameter, compare it to your listbox to see if the user right clicked the listbox. 通过wParam参数抓取窗口的句柄,将其与列表框进行比较,以查看用户是否右键单击了列表框。

From there, create the popupmenu via CreatePopupMenu(). 从那里,通过CreatePopupMenu()创建popupmenu。

Insert/Append into the menu via InsertMenu()/AppendMenu(). 通过InsertMenu()/ AppendMenu()插入/追加到菜单中。

Finally, call TrackPopupMenu(). 最后,调用TrackPopupMenu()。

case WM_CONTEXTMENU:
        if ((HWND)wParam == m_hListBox) {
            m_hMenu = CreatePopupMenu();
            InsertMenu(m_hMenu, 0, MF_BYCOMMAND | MF_STRING | MF_ENABLED, 1, "Hello");
            TrackPopupMenu(m_hMenu, TPM_TOPALIGN | TPM_LEFTALIGN, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, m_hWnd, NULL); 
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 QGraphicsView 中为右键单击创建上下文菜单 - How to create a context menu for right click in QGraphicsView 如何添加Windows右键单击上下文菜单项? - How can I add Windows right click context menu items? 如何显示 Windows 资源管理器上下文(右键单击)菜单? - How to show Windows Explorer context (right click) menu? 电子内部或外部方法来创建自己的右键单击上下文菜单-Windows - Electron internal or external method to create own right click context menu - Windows 如何在列表控件中创建右键菜单? - How do I create a right-click menu in a list control? 如何在Qt Creator中编辑QtWebKit的右键单击上下文菜单? - How to edit QtWebKit's right-click context menu in Qt Creator? 如何用我自己的文件打开对话框替换默认的右键单击上下文菜单 - How do I replace the default right click context menu in a file open dialog box with my own 如何获得右键单击文件夹背景的完整Shell上下文菜单 - How to obtain full shell context menu of right-click a folder background Windows资源管理器右键单击文件和文件夹的上下文菜单 - Windows Explorer right click context menu for files and folders 右键单击不同对象时,右键单击上下文菜单的位置将更改 - Rightclick Context Menu Position is getting Changed on right click of different objects
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM