ON_UPDATE_COMMAND_UI函数中的SetCheck无法正常工作

时间:2017-07-21 01:19:47

标签: mfc

在此功能中pCmdUI->SetText有效,但pCmdUI->SetCheck无效。

我有一个菜单项,我想点击它并在菜单项中显示一个勾选,但我添加了一个消息方法ON_UPDATE_COMMAND_UI,在这个函数中我可以使用pCmdUI->SetText("xxx")和菜单项目文本按预期更改,但如果我使用pCmdUI->SetCheck(TRUE)pCmdUI->SetRadio(TRUE),则只显示一个方框而不是“勾选”。

这里发生了什么?

这是我的代码:

void CBaoSteelBaseView::OnUpdateTrueImage(CCmdUI *pCmdUI)
{
  pCmdUI->Enable(pImage!=NULL && !pImage->IsEmpty());
  if (systemInfo.showTrueImage)
  {
     pCmdUI->SetCheck(TRUE);
  }
  else if (!systemInfo.showTrueImage)
  {
    pCmdUI->SetCheck(FALSE); 
  } 
}

1 个答案:

答案 0 :(得分:0)

不是答案,只是旁注:

您的代码过于复杂。您可以通过以下方式替换它:

void CBaoSteelBaseView::OnUpdateTrueImage(CCmdUI *pCmdUI)
{
  pCmdUI->Enable(pImage!=NULL && !pImage->IsEmpty());
  if (systemInfo.showTrueImage)
  {
     pCmdUI->SetCheck(TRUE);
  }
  else
  {
    pCmdUI->SetCheck(FALSE); 
  } 
}

甚至更简单:

void CBaoSteelBaseView::OnUpdateTrueImage(CCmdUI *pCmdUI)
{
  pCmdUI->Enable(pImage!=NULL && !pImage->IsEmpty());
  pCmdUI->SetCheck(systemInfo.showTrueImage); 
}