加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 09:41:18 所属栏目:百科 来源:网络整理
导读:我有一个带有列表框的窗口,我想右键单击列表框中的条目,并在上下文菜单中显示某些选项.我看过网上但似乎我只能在MFC C中获得示例,或者只是c#. 这在标准Win32 c中是否可行?我可以通过WM_CONTEXTMENU消息右键单击列表框,但是如何显示菜单呢? 解决方法 我想通
我有一个带有列表框的窗口,我想右键单击列表框中的条目,并在上下文菜单中显示某些选项.我看过网上但似乎我只能在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,MF_BYCOMMAND | MF_STRING | MF_ENABLED,1,"Hello");
            TrackPopupMenu(m_hMenu,TPM_TOPALIGN | TPM_LEFTALIGN,GET_X_LPARAM(lParam),GET_Y_LPARAM(lParam),m_hWnd,NULL); 
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读