我正在制作一个 MFC 应用程序,其中有两个菜单选项对应于两个工具栏 - 菜单选项切换工具栏的可见性。如果工具栏当前可见,我需要检查菜单选项。这是我到目前为止所得到的:
BEGIN_MESSAGE_MAP(CLevelPackEditApp, CWinAppEx)
// Standard file based document commands
ON_UPDATE_COMMAND_UI(ID_LEVEL_PROPERTIES, &CLevelPackEditApp::OnViewLevelProperties)
END_MESSAGE_MAP()
void CLevelPackEditApp::OnViewLevelProperties(CCmdUI* pCmdUI)
{
// Get a handle to the main window
CMainFrame* main = ((CMainFrame*)m_pMainWnd);
// Get a handle to the level properties toolbar for the main window
CLevelProperties* obj = main->GetLevelProperties();
if (obj->IsWindowVisible())
{
pCmdUI->SetCheck(0);
obj->ShowPane(false, false, false);
} else {
pCmdUI->SetCheck();
obj->ShowPane(true, false, true);
}
}
它有效....有点。它在选中和未选中之间切换,但每秒会切换多次 - 我怀疑检查菜单项会导致菜单更新,因此未选中,因此更新,因此选中,aaannnd 重复。我怎样才能解决这个问题?