如何选中MFC中的菜单栏,在选中后打钩


 

bool m_bChecked = false;
void CXXXDlg::OnXXXX()
{
 // TODO: 在此添加命令处理程序代码
 m_bChecked = !m_bChecked;
}

//
void CXXXDlg::OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex,BOOL bSysMenu)
{
 if (!bSysMenu)
 {
  //查看弹出菜单中是否包含 ID_HI_MFC项。
  int nCount = pPopupMenu->GetMenuItemCount();
  for (int i = 0; i < nCount; i++)
  {
   if (pPopupMenu->GetMenuItemID(i) == ID_TIMER_REFRESH)
   {
    pPopupMenu->CheckMenuItem(ID_TIMER_REFRESH, MF_BYCOMMAND | (m_bChecked ? MF_CHECKED : MF_UNCHECKED));
    break;
   }
  }
 }
}

//

然后在消息映射中添加ON_WM_INITMENUPOPUP 项:

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
 //{{AFX_MSG_MAP(CTestDlg)
                        ........................
                        ........................
 //}}AFX_MSG_MAP

 ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()

 

 

你可能感兴趣的:(MFC,MFC相关技术)