菜单相应UPDATE_COMMAND_UI是出错

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:42:26
我给菜单中的File->new在CMainFram类中添加了UPDATE_COMMAND_UI响应,相应函数为:
void CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
// if(ID_FILE_NEW==pCmdUI->m_nID)
// pCmdUI->Enable(FALSE);
if(0==pCmdUI->m_nIndex)
pCmdUI->Enable(FALSE);

if(m_CheckFlag%2==0)
{
pCmdUI->SetCheck ();
}
else
pCmdUI->SetCheck (0);
m_CheckFlag+=1;
}

m_CheckFlag为CMainFrame类的int型成员变量;

运行时,只要鼠标一动,工具栏上对于的“新建”图标就闪个不停,请给解释一下;谢谢!
谢谢一楼的回答,不过发现,系统内没有默认的ON_UPDATE_COMMAND_UI相应函数,把ID号修改,需要把工具栏中的ID号也要修改呀,同样也会出现不停的闪的情况。 跟踪发现,只要鼠标一动,就响应OnUpdateFileNew.
按照二楼的回答,去掉m_CheckFlag+=1; 不过有疑问?为什么会循环刷新?当鼠标一动,就响应OnUpdateFileNew?我说的“系统内没有默认的ON_UPDATE_COMMAND_UI相应函数”,意思是程序里对ON_UPDATE_COMMAND_UI的响应只有一个(我亲自写的),系统没有写响应函数。
谢谢回答,希望能解答上面的两个疑问。

m_CheckFlag+=1;
这句最好不要放在这个函数里面,以免它循环刷新!

不明白你说的“系统内没有默认的ON_UPDATE_COMMAND_UI相应函数”,通过资源编辑器里,对菜单项映射处理函数时,就可以自动生成ON_UPDATE_COMMAND_UI以及对应的处理函数啊。

有可能即响应了你的Update消息有处理系统自身的,建议你修改一下New的菜单ID,然后再处理。

编写一个C语言程序,显示如下菜单并实现相应的菜单选择功能 摩托罗拉v3手机在打1860服务电话时,按数字键无法进入相应菜单。 IE出故障了,一点地址栏的下拉菜单就没有相应了 vc MFC怎么实现?点击菜单IDR_MAINFRAME上的选项弹出相应对话框 cs1.5游戏中按=,画面左边有菜单,按相应的数字没反映,怎么办 右击菜单变成透明的 把鼠标移动到相应位置后又显示 这是中了什么毒 快捷方式拖到桌面,而程序里就没有那个图标了,怎么在程序里在建相应的菜单 点右键时总要几秒钟才会出现菜单?开始菜单总是在我鼠标点击后一段时间后才会出现相应的程序? “相应”怎么翻译? ‘自行安装相应’是什么意思