一 资源视图中新增加一个菜单资源IDR_MENUVIEW 顶级菜单随便输入文字
子菜单增加三个菜单,属性设置如下:
ID: ID_CUT_VIEW Caption:剪切
ID: ID_COPY_VIEW Caption:复制
ID: ID_PASTE_VIEW Caption:粘贴
二 View右键,类向导->消息->添加一个右键按下的消息映射 WM_RBUTTONDWON,处理函数OnRButtonDown()
View.cpp中增加如下代码
void CMMenuView::OnRButtonDown(UINT nFlags, CPoint point) { CMenu m; m.LoadMenuW(IDR_MENU1); CMenu *popMenu; popMenu = m.GetSubMenu(0); ClientToScreen(&point); //如果不加,菜单出现的位置是相对屏幕的点,这个函数的功能是将View区的坐标点转为屏幕坐标点 popMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,this); CView::OnRButtonDown(nFlags, point); }
三 View 类视图上右键 ->类向导->命令->对象ID里面找到菜单中的三个ID选中,消息中选择:COMMAND 单击"添加处理程序"
三个函数名OnCutView(),OnCopyView(),OnPasteView
为每个函数添加一个MessageBox消息框:
void CMMenuView::OnCutView() { MessageBox(L"剪切"); } void CMMenuView::OnCopyView() { MessageBox(L"复制"); } void CMMenuView::OnPlateView() { MessageBox(L"粘贴"); }