工控编程吧
标题:
上位机MFC如何实现快捷菜单
[打印本页]
作者:
qq263946146
时间:
2019-7-19 12:19
标题:
上位机MFC如何实现快捷菜单
所谓的快捷菜单,就是直接鼠标右键弹出的菜单,可以很方便的通过菜单操作软件。
有普通菜单的添加一样,
首先也是新增一个菜单资源IDR_MENU。菜单上有众多子菜单。
如果是想通过鼠标右键弹出菜单,可以要鼠标右键函数内实现。
void CDemoView::OnRButtonUp(UINT nFlags, CPoint point)
{
ClientToScreen(&point);
CMenu menu;
//加载菜单
if (!menu.LoadMenu(IDR_MENU))
{
return;
}
//获得子菜单
CMenu* pPopupMenu = menu.GetSubMenu(0);
//弹出菜单
pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
point.x, point.y, this);
CView::OnRButtonUp(nFlags, point);
}
也可以响应消息WM_CONTEXTMENU的处理函数实现
void CDemoView::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu;
//加载菜单
if (!menu.LoadMenu(IDR_MENU))
{
return;
}
//获得子菜单
CMenu* pPopupMenu = menu.GetSubMenu(0);
//弹出菜单
pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
point.x, point.y, pWnd);
}
子菜单项的点击响应函数,可以与正常菜单项关联消息一样操作
void CDemoView::OnTestMenu1()
{
AfxMessageBox(_T("快捷菜单项1命令"));
}
void CDemoView::OnTestMenu2()
{
AfxMessageBox(_T("快捷菜单项2命令"));
}
[MFC408]1[/MFC408]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4