MFC,用vs2008/2010在CView类中加入右键弹出菜单

//转自 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类添加一个响应函数
,函数用来弹出菜单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值