当前位置 : 首页 » 文章分类 :  开发  »  MFC中实现在指定控件上弹出右键菜单

MFC中实现在指定控件上弹出右键菜单

步骤如下:

  • 1、添加菜单资源IDR_POPMENU,在资源编辑器中编辑菜单第一列,并且为每个菜单项添加处理函数。
  • 2、在视图类中重载WM_CONTEXTMENU消息(此消息在鼠标右键压下并抬起后触发)的处理函数OnContextMenu()中添加如下代码:

    CRect  rect; //定义矩形区域
    GetDlgItem(指定控件的ID) -> GetWindowRect(&rect);  //获得控件相对于屏幕的位置坐标
    if(rect.PtInRect(point))  //右击点在指定控件上
    {
       CMenu popMenu;//弹出菜单
       popMenu.LoadMenu(IDR_POPMENU);//根据资源ID关联菜单资源
       CMenu * subMenu = popMenu.GetSubMenu(0);//获得第0列子菜单的指针
       subMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON, point.x, point.y, this);  //在指定位置显示浮动弹出菜单,并追踪弹出菜单中被选择的项
    }
    
  • 3、每一个菜单项的消息映射,与一般的菜单相同,自己添加COMMAND事件的响应函数。

上一篇 利用OpenCV在picture控件中显示图片

下一篇 MFC中点击ComboBox下拉列表不显示数据的解决方法

域名迁移公告
2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问!
阅读
227
阅读预计1分钟
创建日期 2012-07-12
修改日期 2017-07-15
类别
标签
百度推荐