如何选中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()

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值