创建窗口菜单:
添加资源->菜单资源,如图所示:
现在创建了两个子菜单(文件和编辑菜单)
然后点击主窗口右键单击属性,如图所示:
然后右键单击新建->添加事件处理程序,如图所示:
写测试代码:
void CMFCTESTDlg::OnNew()
{
// TODO: 在此添加命令处理程序代码
AfxMessageBox(_T("文件->NEW"));
}
如图所示:
创建快捷菜单:
在资源里再插入菜单,如图所示:
现在只有一个子菜单就是快捷菜单.它是不会显示出来的,所以可以随便写,显示出来的只有菜单1,2,3
接着在主窗口中找到WM_CONTEXTMENU消息,然后在里面写处理的代码
void CMFCTESTDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: 在此处添加消息处理程序代码
CMenu menu;
if (!menu.LoadMenu(IDR_MENU2))
{
AfxMessageBox(_T("加载快捷菜单失败"));
return;
}
//获取子菜单,因为只有一个快捷菜单,所以子菜单就是0(第一个)
CMenu* pPopMenu = menu.GetSubMenu(0);
pPopMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWnd);
}
现在可以右键弹出菜单了,再去写一个测试函数.
快捷菜单->右键单击菜单1->添加事件处理程序
void CMFCTESTDlg::OnPop1()
{
// TODO: 在此添加命令处理程序代码
AfxMessageBox(_T("快捷菜单->菜单1"));
}
如图: