积木

No sub title

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

注意:刚刚试了下,似乎没法响应。改日再行研究。或高手们还请不吝赐教。

 ClientToScreen(&point);
 theApp.GetContextMenuManager()->ShowPopupMenu(IDR_MENU_OBJECTMGR, point.x, point.y, this, TRUE);

说明一点:
1) 如果有用dockpane的话,则菜单控制需要在wm_rbuttondown中处理
2) 用上面的方法,弹出来的右键菜单,将是灰的,而且就算你已经为它们写了消息响应。它们也是灰的。(但请注意:此时的菜单项,虽是
灰的,可它们是可以点击的。即:它们是可以响应的。)
要想解决菜单项灰的问题。可以用如下方法解决。
步骤一:
 CMenu rMenu;
 rMenu.LoadMenu(IDR_MENU_OBJECTMGR);
 CMenu* pPopupMenu = rMenu.GetSubMenu(0);
 ClientToScreen(&point);
 pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTALIGN, point.x, point.y, this);

上面的代码其实是我们非常熟悉的处理方法。但用上它,vs2008中的皮肤效果将无法显示出来。
所以需要下面的步骤二。
步骤二:
不用上面的 pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTALIGN, point.x, point.y, this);
将其改为:GetContextMenuManager()->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTALIGN, point.x, point.y, this);
此时就万事OK了。

-----------------------------------------------
总结:vs2008在皮肤以及一些新的功能特性方面,的确给我们带来了不少的惊奇。可同时,也给我们带来了不少的"麻烦"。
posted on 2011-11-03 14:03 Jacc.Kim 阅读(461) 评论(0)  编辑 收藏 引用 所属分类: VC / C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理