在工具栏中有两个按钮 A 和 B;
这两个按钮的ID和与其对应的菜单项的ID相同;
我在其菜单项的 UPDATA_COMMOND_UI 消息处理函数中这样写的//按钮A (按钮B是类似的写法)
void CMainFrame::OnUpdateMyA(CCmdUI *pCmdUI)
{
        //如果鼠标单击A
          if(m_curA == 1){
        pCmdUI->SetCheck(1);
    }
    else{
        pCmdUI->SetCheck(0);
    };
}问题:
    现在单击按钮A时,A可以显示说 "按下" 状态;
    但是单击B时,A依然显示是 "按下" 的状态;
    想实现单击B时  让A弹起来, 该如何做呢

解决方案 »

  1.   

    你是什么时候设置 m_curA=1的?在设置 m_curA=1 的地方同时设置 m_curB=0;
    在设置 m_curB=1 的地方同时设置 m_curA=0 就可以了
      

  2.   

    //按钮A (按钮B是类似的写法) 
    void CMainFrame::OnUpdateMyA(CCmdUI *pCmdUI) 

         //如果鼠标单击A 
          pCmdUI->SetCheck(m_curA == A); } 
    //comman消息
    {
        m_curA = A或者B;
    }
    void CMainFrame::OnUpdateMyb(CCmdUI *pCmdUI) 

         //如果鼠标单击A 
          pCmdUI->SetCheck(m_curA == B); } 
      

  3.   

    你现在的写法应该是在OnLButtonDown中设置m_curA和m_curB的?OnLButtonDown
    {
        if (鼠标在A上)
        {
            m_curA=1;
            m_curB=0;
        } else if (鼠标在B上)
        {
            m_curA=0;
            m_curB=1;
        } else 
        {
            m_curA=0;
            m_curB=0;
        }
    }