在以前的VC6.0中,编译器已经给我们做好了一个有复制,剪切,粘贴三个选项的右键弹出菜单,我们直接添加即可,但是在vs2008中没有了,我们好像只有手动添加了。
以前的VC6.0中,我们可以直接在CLASS WIZARD中添加虚函数,例如添加一个CFRAME类中的ONCOMMAND函数等等,但是在VS中没有CLASS WIZARD,怎么办呢,其实我们也可以直接添加,只不过位置不一样而已,现在的位置是在属性里面,然后点击重写,就可以在里面找到我们所需要的ONCOMMAND函数了,添加即可。在vs2008中,添加消息响应和类似添加虚函数的操作都变到属性窗口了。
添加右键菜单方法及代码:
1,自己添加一个Menu资源,例如命名为IDR_MENU1,编辑之。顶级菜单是不出现的我们可以随便设置不妨为abc。然后添加两个弹出菜单项:显示(IDM_SHOW)和退出(IDM_EXIT). 2,给CMenuView类中添加WM_RBUTTONDOWN消息的响应函数。代码如下: void CMenuView::OnRButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CMenu menu; menu.LoadMenuA(IDR_MENU1); CMenu* pPopup = menu.GetSubMenu(0); ClientToScreen(&point); //客户坐标转换成屏幕坐标 pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
CView::OnRButtonDown(nFlags, point); } 对菜单项添加事件很Easy。动态菜单添加主要用到如下的函数: BOOL AppendMenu(UINT nFlags, UINT_PTR nIDNewItem = 0, LPCTSTR lpszNewItem = NULL);
|