MFC 中CMenu菜单的的使用

这里以生活中鼠标右键点击出来属性的菜单为例子。

第一:在工程中使用菜单控件来生成右键显示的项

第二:直接用API函数来生成右键显示的项

 

 

 

第一种方法比较简单,其属性可以在工程中选择。

首先创建鼠标右键的消息响应函数

然后在消息响应函数中添加如下代码

 

GetCursorPos(&point); //获取鼠标的当前位置

CMenu menu;//声明菜单对象

VERIFY(menu.LoadMenu(IDR_TEST_));//判断加载菜单资源是否成功

CMenu* pPopup = menu.GetSubMenu(0);  //获得第一个弹出菜单的指针,也就是菜单中的第一个弹出菜单

ASSERT(pPopup != NULL); //p断言不为空

CWnd* pWndPopupOwner = this;//当前类的指针

 

//下面遍历主要是为找到第一个不含有WS_CHILD的窗口指针

  while (pWndPopupOwner->GetStyle() & WS_CHILD)

  pWndPopupOwner = pWndPopupOwner->GetParent();

 

//下面就是弹出菜单

pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner);

 

2

 

GetCursorPos(&point);

CMenu menu1;

menu1.CreatePopupMenu();     //动态创建弹出式菜单对象

menu1.AppendMenu(MF_STRING,IDR_TEST_,L" 菜单项");

menu1.InsertMenu(1,MF_BYPOSITION|MF_POPUP|MF_STRING,(UINT)IDR_TEST_,L"子菜单"); //添加子菜单

menu1.TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);

menu1.DestroyMenu();

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码i小学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值