菜单相应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的响应只有一个(我亲自写的),系统没有写响应函数。
谢谢回答,希望能解答上面的两个疑问。
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,然后再处理。