VS2010和MFC编程入门之35(菜单:菜单及CMenu类的使用)(2)

2019-08-30 20:56

void CMainFrame::OnUpdateSettingsDrawenable(CCmdUI *pCmdUI) {

// TODO: Add your command update UI handler code here // 根据m_bDraw的值设置是否选中 pCmdUI->SetCheck(m_bDraw); }

5. 运行程序,效果图如下:

6. 接下来我们要重新实现右键菜单。大家以后可以仿照VS2010自动生成的代码实现右键菜单,也可以用鸡啄米下面讲到的方法。首先将

CExample34View::OnRButtonUp(UINT /* nFlags */, CPoint point)函数内的代码都注释掉,保证原来的弹出方法失效。

7. 自动生成代码是在鼠标弹起时实现的右键菜单,我们这里改为在鼠标按下时就弹出右键菜单。在class view类视图中点击CExample34View,然后在属性页的messages列表中找到WM_RBUTTONDOWN,添加其消息响应函数

CExample34View::OnRButtonDown(UINT nFlags,CPoint point),修改其实现为:

C++代码

void CExample34View::OnRButtonDown(UINT nFlags, CPoint point) {

// TODO: Add your message handler code here and/or call default CMenu menu; // 菜单(包含主菜单栏和子菜单) CMenu *pSubMenu; // 右键菜单

// 加载菜单资源到menu对象

menu.LoadMenu(IDR_POPUP_EDIT);

// 因为右键菜单是弹出式菜单,不包含主菜单栏,所以取子菜单 pSubMenu = menu.GetSubMenu(0); // 将坐标值由客户坐标转换为屏幕坐标 ClientToScreen(&point);

// 弹出右键菜单,菜单左侧与point.x坐标值对齐

pSubMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);

CView::OnRButtonDown(nFlags, point); }

8. 最终的右键菜单效果:

本节内容不少,大家可以慢慢消化。菜单的讲解就到这里了。


VS2010和MFC编程入门之35(菜单:菜单及CMenu类的使用)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京市进一步深化城镇住房制度京发[1999]21号

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: