程序中有两个工具条,一个用于控制工具条的显示与隐藏的弹出式菜单。
现在的问题是
菜单项前面的勾不能出来
代码如下:
void CToolbarCal::OnUpdateMenuItem1(CCmdUI* pCmdUI) 
{
// TODO: Add your command update UI handler code here CToolbarCal* mpToolBar=p_ToolBarManger->m_PToolArray[0];
    BOOL bVisible = ((mpToolBar->GetStyle()& WS_VISIBLE) != 0);
  pCmdUI->SetCheck(bVisible);
}
 
void CToolbarCal::OnUpdateMenuItem2(CCmdUI* pCmdUI) 
{
// TODO: Add your command update UI handler code here
CToolbarCal* mpToolBar=p_ToolBarManger->m_PToolArray[1];
    BOOL bVisible = ((mpToolBar->GetStyle()& WS_VISIBLE) != 0);
pCmdUI->SetCheck(bVisible);} /********************************************
消息函数肯定是得到了处理的,因为我在里面添加一个MessageBox("agjal","afhka")的话,点击菜单项时,这个对话框是可以出来的。
*********************************************
还有就是我即使我把bVisible改为TRUE,菜单项前面还是没有勾的。
应该怎么处理呀?
*********************************************/

解决方案 »

  1.   

    菜单选项中设置Checked属性了吗?
      

  2.   

    BOOL bVisible = ((mpToolBar->GetStyle()& WS_VISIBLE) != 0); 检察返回值了吗?
      

  3.   

    怎样检查呀?
    问题是即使我用
    pCmdUI->SetCheck(TRUE);
    还是没有勾:(
      

  4.   

    楼上的好像有点道理
    难道是这个原因?
    我的菜单是右击工具条时load的。弹出式菜单嘛,我觉得好像只能这样生成吧
    有没有别的办法啊??
    现在的生成菜单的代码如下:
    void CToolbarCal::OnRButtonDown( UINT nFlags, CPoint point )
    { // CG: This block was added by the Pop-up Menu component if (point.x == -1 && point.y == -1){
    //keystroke invocation
    CRect rect;
    GetClientRect(rect);
    ClientToScreen(rect); point = rect.TopLeft();
    point.Offset(5, 5);
    } CMenu menu; VERIFY(menu.LoadMenu(IDR_MENU1));
    CMenu* pPopup = menu.GetSubMenu(0);
    ASSERT(pPopup != NULL);
      
    ClientToScreen(&point);
    pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
    this);
      CToolBar::OnRButtonDown(nFlags, point);
    }
      

  5.   

    你可以这样试试,将你代码中的
    CMenu menu;声明成类的变量,初始化时LoadMenu(IDR_MENU1);
    然后每次需要弹出时:
    CMenu* pPopup = menu.GetSubMenu(0);猜想,试试看
      

  6.   

    to  figer() :还是不行
    to sohou(大秦之刃):我顶楼铁的两个函数就是UPDATEUI函数呀