TrackPopupMenu 创建菜单一闪而过

wojiushi3344 2012-07-02 06:07:38
今天遇到个问题,找了半天没找到元原因,哪位大侠能帮我看看到底是什么问题吗?

CMenu   pMenu; 
bool a =pMenu.CreatePopupMenu();
map<int,CChartMgr*>::iterator tIter;
for (tIter = m_ChartValue.begin();tIter!= m_ChartValue.end();tIter++)
{
pMenu. AppendMenu(MF_STRING, tIter->first,tIter->second->m_ChartViewConf.m_csName);
}
int nSelection=pMenu.TrackPopupMenu
(TPM_LEFTALIGN | TPM_RIGHTBUTTON , pt.x, pt.y, this);


单击右键的时候会出现菜单,但是当松开右键的时候菜单就消失了。哎,调试了好久都没有找到原因,有谁遇到过这样的问题吗?还有一个小问题就是,如何创建前面带勾的菜单。谢谢!!
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyqok 2012-07-03
  • 打赏
  • 举报
回复
定义成局部变量了!加上下面的代码 试试看
pMenu.Detach(); //将资源句柄和menu对象断开
zgl7903 2012-07-03
  • 打赏
  • 举报
回复
菜单消失 是不是在什么状态下失去了焦点?
带钩的菜单可以使用 CheckMenuItem
wojiushi3344 2012-07-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
我试了一下你的代码 没发现问题 如果你的右键菜单在OnRButtonDown中,需要将鼠标位置点转换为屏幕坐标
[/Quote]
这段代码就是写在OnRButtonDown中的
  • 打赏
  • 举报
回复
我试了一下你的代码 没发现问题 如果你的右键菜单在OnRButtonDown中,需要将鼠标位置点转换为屏幕坐标
无趣 2012-07-02
  • 打赏
  • 举报
回复
在Mouse_Up消息中调用 pMenu.TrackPopupMenu

15,979

社区成员

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

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