//转自 http://hi.baidu.com/woodcock1017/blog/item/115047b6842ce5ff30add10a.html
又是vc6.0跟新版本的差别,在vc6.0里可以通过project->add to project->Components and controls->visual c++ components -> popup menu,选择插入,再选插到CxxxView类里就可以了。
俨然2008/2010里没有这个选项,从网上查了一下,看来只能手动添加代码了
在Class View中找到CxxxView,(xxx是建立的工程名),右键,选择property,在Message选项卡中找到WM_RBUTTONDOWN消 息,点击右边空白处,再点向下箭头,选择<add>OnRButtonDown,在自动添加的函数中加入如下代码:
void CxxxView::OnRButtonDown(UINT nFlags, CPoint point){
CMenu menu ;
menu.LoadMenuW( IDR_MENU1 ) ;//IDR_MENU1是在Resource中自己建的menu的id
CMenu *pMenu = menu.GetSubMenu(0 ) ; //自己建的menu资源中要有一个子菜单才可以
/*
menu.LoadMenuW( IDR_MAINFRAME ) ;
CMenu *pMenu = menu.GetSubMenu(1) ;//这样可以弹出“编辑”菜单的选项
*/
ClientToScreen( &point ) ;//将客户区坐标转为屏幕坐标
pMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this ) ;
CView::OnRButtonDown(nFlags, point);
}
简言之,给程序的CView类添加一个响应函数 ,函数用来弹出菜单。