我有一个带有列表框的窗口,我想右键单击列表框中的条目,并在上下文菜单中显示某些选项.我看过网上但似乎我只能在MFC C++中获得示例,或者只是c#.
这在标准的Win32 c ++中是否可行?我可以通过WM_CONTEXTMENU消息右键单击列表框,但是如何显示菜单呢?
我想通了,感谢Bhargav Bhat对相关问题的评论.
通过检查WndProc中的WM_CONTEXTMENU,右键单击列表框.
通过wParam参数抓取窗口的句柄,将其与列表框进行比较,以查看用户是否右键单击了列表框.
从那里,通过CreatePopupMenu()创建弹出菜单.
通过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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6468 次 |
| 最近记录: |