VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 769|回复: 1

[交流] 关于基础班17课弹出菜单操作

[复制链接]
14_avatar_middle
online_supermod 发表于 2016-4-22 23:12:41 | 显示全部楼层 |阅读模式
本帖最后由 venblue 于 2016-4-22 23:14 编辑

右键弹出菜单然后禁用或钩上点上的操作。
以下代码:
  1. void CMFCTestMenuDlg::OnContextMenu(CWnd* pWnd, CPoint point)
  2. {
  3.         // TODO: 在此处添加消息处理程序代码
  4.         CMenu mMenu, *pMenu = NULL;
  5.         mMenu.LoadMenu(IDR_MENU1);
  6.         pMenu = mMenu.GetSubMenu(0);

  7.         pMenu->EnableMenuItem(ID_MENU_MENU1,MF_GRAYED);//右键弹出菜单 禁用菜单按钮
  8.         pMenu->CheckMenuItem(ID_MENU_MENU1,MF_CHECKED);//右键弹出菜单打勾
  9.         pMenu->CheckMenuRadioItem(ID_MENU_MENU2,ID_MENU_MENU2,ID_MENU_MENU2,MF_BYCOMMAND);//右键弹出菜单点上

  10.         pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
  11. }
复制代码

当我们鼠标右键点击了窗口弹出菜单
并执行禁用勾选,点上的操作。

menu1

menu1


此时我们未进行鼠标右键操作,Menu1未被禁用并勾选,Menu2未被上点。


menu2

menu2

当我们单机右键响应了OnContextMenu时,弹出菜单此时,Menu1被禁用并勾选,Menu2被上点



而当弹出菜单关闭后下拉菜单的Menu1与Menu2并没有与弹出菜单出现相同的效果。
但我们OnContextMenu弹出菜单后的操作应该也可理解为对我们下拉菜单里面Menu1与Menu2操作,但是弹出菜单关闭后,下拉菜单并没有改变。

所以我感觉这种方法弊端在于在你右键弹出菜单是弹出的菜单确实达道了你想要的效果但是下拉菜单却没有达道你的效果

接下来我们看看txt右键与下拉

关于基础班17课弹出菜单操作

关于基础班17课弹出菜单操作

大家可以看到无论是下拉还是弹出的一下相同按钮都是不可用的,达道了相同的效果。

也就是SYC老师说建议大家使用UPDATE_COMMAND_UI的原因就是这样的。

评分

参与人数 2威望 +4 驿站币 +4 +2 +2 热心值 +3 收起 理由
51_avatar_small Syc + 2 + 2 + 2 赞一个!
78_avatar_small 小强s + 2 + 2 + 2 + 2 + 1 感谢分享经验.驿站就是一个少一些套路.多一.

查看全部评分





上一篇:请大神指教一下
下一篇:VS2015安装问题
78_avatar_middle
online_vip 发表于 2016-4-23 07:59:14 | 显示全部楼层
感谢分享
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-26 23:28

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表