问题描述
我有一个案例,我希望菜单使用 ON_UPDATE_COMMAND_UI
设置对项目的检查;但是,在工具栏上,我将使用下拉工具栏,因此我只想选择正确的工具栏项目而不更改其选中状态。
如何确定 ON_UPDATE_COMMAND_UI
调用是针对菜单栏还是工具栏?
解决方法
您可以检查处理程序给定的 CCmdUI
参数的 m_pMenu
member;如果为菜单项调用了例程,那将是一个有效的 CMenu*
指针;如果不是,它将是 NULL
:
void CMyClass::OnUpdateHandler(CCmdUI *pCmdUI)
{
if (!pCmdUI->m_pMenu) {
// NOT for a menu
}
else {
// For a menu
}
}