feature pack界面,快捷菜单在失去焦点的情况下不消失是什么原因?

GISsirclyx 2011-04-25 08:14:59
情况是这样的:
一个CDockPane,上面放一个dialog,dialog上有个控件,在dialog的OnContextMenu函数里有如下代码:

void CControlDlg::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_TOC_MENU);
CMenu* pSubMenu = NULL;
//主要菜单
pSubMenu = menu.GetSubMenu(0);

theApp.GetContextMenuManager()->ShowPopupMenu(pSubMenu->GetSafeHmenu(), point.x, point.y, this, TRUE);
}

可以弹出快捷菜单,但左键点击该对话框,该快捷菜单不自动消失。
feature pack的快捷菜单的机制不太熟悉,有没有大牛来答疑解惑?
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
GISsirclyx 2011-07-27
  • 打赏
  • 举报
回复
我自己回答吧。
需要获得当前激活的菜单。再发送消息给他将他摧毁
向立天 2011-05-13
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
GISsirclyx 2011-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 visualeleven 的回复:]
ShowPopupMenu前面加上SetForgroundWindow(AfxGetMainWnd()->GetSafeHwnd());试试
[/Quote]

谢谢回复!试了一下,还是跳不出来。这个函数我之前在网络上也有见过,但是不是很清楚它的意义
Eleven 2011-04-25
  • 打赏
  • 举报
回复
ShowPopupMenu前面加上SetForgroundWindow(AfxGetMainWnd()->GetSafeHwnd());试试
GISsirclyx 2011-04-25
  • 打赏
  • 举报
回复
我手头有个测试程序。有没有哪位能帮忙看看?留个邮箱

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧