繁体   English   中英

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

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

我有一个带有列表框的窗口,我想右键单击列表框中的条目,并在上下文菜单中显示某些选项。 我看过网上但似乎我只能在MFC C ++中获得示例,或者只是c#。

这在标准的Win32 c ++中是否可行? 我可以通过WM_CONTEXTMENU消息右键单击列表框,但是如何显示菜单呢?

我想通了,感谢Bhargav Bhat对相关问题的评论。

通过检查WndProc中的WM_CONTEXTMENU,右键单击列表框。

通过wParam参数抓取窗口的句柄,将其与列表框进行比较,以查看用户是否右键单击了列表框。

从那里,通过CreatePopupMenu()创建popupmenu。

通过InsertMenu()/ AppendMenu()插入/追加到菜单中。

最后,调用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM