我用如下方法弹出菜单,
Menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_VERTICAL,CurPoint.x,CurPoint.y,this);在这之前先设置好了各菜单项的状态变量,有效或无效,具体程序如下
void CNodeTreeView::OnUpdateTreeAddCommunity(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_bCommunityMenu)//菜单项的状态变量
pCmdUI->Enable(true);
else
pCmdUI->Enable(false);
}
可每次都是先弹出菜单,等到点击菜单项的时候才执行OnUpdateTreeAddCommunity,
这样事先对菜单项状态的控制就失效了,该怎么解决呢?
Menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_VERTICAL,CurPoint.x,CurPoint.y,this);在这之前先设置好了各菜单项的状态变量,有效或无效,具体程序如下
void CNodeTreeView::OnUpdateTreeAddCommunity(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_bCommunityMenu)//菜单项的状态变量
pCmdUI->Enable(true);
else
pCmdUI->Enable(false);
}
可每次都是先弹出菜单,等到点击菜单项的时候才执行OnUpdateTreeAddCommunity,
这样事先对菜单项状态的控制就失效了,该怎么解决呢?
解决方案 »
- WIN7下用MSCOMM控件
- 基于TCP/IP协议的应用程向底层控制器请求连接怎么做?
- 100分急问:使用mscomm控件的,RTS硬件握手问题
- 向mysql插中文出现错误 "incorrect string value:\x....."
- 求删除列表中的进度条的问题
- 加载文件用的代码 放哪里?
- 我想在组合框中输入的是C60,而在程序中用到60作为计算的依据,如何实现阿??
- 一个接口带有两个返回值,在ASP里调用,是否能通过
- 请教高手,关于在数据库中存放浮点数的问题,如果用来做索引,用浮点数还是用字符串的形式?
- 怎么才能显示按钮上的提示,为什么我用了CToolTipCtrl还是不能显示提示内容,只有源码,哪位看看,谢了先!
- 如何查找CListCtrl中某一列中的一个值在哪一行,给点思路,OK?
- 高分求救!!!!!!!!!!!!!!!!!!
对于你的问题,如下代码可以:
CMenu Menu;
CMenu* pPopup;Menu.LoadMenu(IDR_MENU_SOURCE_CONFIG);
pPopup = Menu.GetSubMenu(0);
if ( bEnable )
{
pPopup->CheckMenuItem(ID_MENU_ENABLE_FILE,MF_CHECKED | MF_BYCOMMAND);
}
else
{
pPopup->CheckMenuItem(ID_MENU_ENABLE_FILE,MF_UNCHECKED | MF_BYCOMMAND);
}
pPopup->TrackPopupMenu(TPM_LEFTALIGN |TPM_LEFTBUTTON,point.x,point.y,this);
程序运行时先弹出菜单,等到点击菜单项的时候才执行OnUpdateTreeAddCommunity,这样事先对菜单项状态的控制就失效了啊?以上的方法我试了,不行啊!
void CNodeTreeView::OnUpdateTreeAddCommunity(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_bCommunityMenu)//菜单项的状态变量
pCmdUI->Enable(true);
else
pCmdUI->Enable(false);
}
在TrackPopupMenu前设置bCommunityMenu的值
OnUpdateTreeAddCommunity 是在 m_bCommunityMenu的值发生变化时调用,消息映射中添加
ON_UPDATE_COMMAND_UI(ID_MENU_ENABLE, OnUpdateTreeAddCommunity )
怎么会触发OnUpdateTreeAddCommunity参看doc-view的一些例子把,这是微软的一种机制,我就不解释了