C++ MFC如何确定ON_UPDATE_命令_UI是用于菜单栏还是工具栏?

C++ MFC如何确定ON_UPDATE_命令_UI是用于菜单栏还是工具栏?,c++,mfc,mfc-feature-pack,C++,Mfc,Mfc Feature Pack,我有一个例子,我想让菜单使用“更新”命令上的“代码”设置对项目的检查;但是,在工具栏上,我将使用下拉工具栏,因此我只想选择正确的工具栏项,而不想更改其选中状态 如何确定调用ON\u UPDATE\u COMMAND\u UI是针对菜单栏还是工具栏?您可以检查处理程序给定的CCmdUI参数;如果为菜单项调用了例程,则该例程将是有效的CMenu*指针;如果不是,则它将为NULL: void CMyClass::OnUpdateHandler(CCmdUI*pCmdUI) { 如果(!pCmdUI->

我有一个例子,我想让菜单使用“更新”命令上的“代码”设置对项目的检查;但是,在工具栏上,我将使用下拉工具栏,因此我只想选择正确的工具栏项,而不想更改其选中状态

如何确定调用
ON\u UPDATE\u COMMAND\u UI
是针对菜单栏还是工具栏?

您可以检查处理程序给定的
CCmdUI
参数;如果为菜单项调用了例程,则该例程将是有效的
CMenu*
指针;如果不是,则它将为
NULL

void CMyClass::OnUpdateHandler(CCmdUI*pCmdUI)
{
如果(!pCmdUI->m_pMenu){
//不是为了菜单
}
否则{
//要菜单吗
}
}

对菜单和工具栏按钮使用不同的命令ID,因为听起来它们实现的行为并不相同。这是一个可以通过下拉工具栏选择的多选项选择,但单击它实际上什么都不做(只是当前选项的视觉效果),我可能会重新考虑如何使用工具栏。