生成一个单文档的应用程序。在“查看”菜单里“工具栏”有钩的情况是出现,没钩的情况是隐藏。这个是怎么实现的啊???好像和一个BOOL变量关联一样~!我现在想自己做一个菜单实现这种功能啊。怎么做呢?

解决方案 »

  1.   

    工具栏本质上也是一个CWnd派生类的实例,这样,就很简单了。
    pYourToolBar->ShowWindow(SW_HIDE);
      

  2.   

    很多地方都用到这种效果。菜单就好象是一个BOOL变量     。我靠这个变量来确定一些事。
      

  3.   

    你的困惑应该是菜单的问题吧,找一本入门的书看看,框架菜单的钩钩OnMenuUpdateXXX(),
      

  4.   

    框架生成的菜单本来就支持CHECKED状态,查一下帮助看如何刷新成有钩的状态和如何去钩吧
      

  5.   

    对应按钮的ON_UPDATE_COMMAND_UI(ID_SHOW_MESSAGE, OnUpdateShowMessage)消息
    void CMainFrame::OnUpdateShowMessage(CCmdUI* pCmdUI) 
    {
    pCmdUI->Enable();
    pCmdUI->SetCheck(TRUE);//打勾(选中) FALSE 为没有选中(不打勾)
    }
      

  6.   

    myMenu.CheckMenuItem(IDM_SHOWTOP,MF_CHECKED); //有打勾myMenu.CheckMenuItem(IDM_SHOWTOP,MF_UNCHECKED); //没有打勾myMenu是CMenu对象
      

  7.   

    你定义一个BOOL型变量嘛.void CCountTimeDlg::OnShowtop(){
              if(!IsTop){
    IsTop = TRUE;
    myMenu.CheckMenuItem(IDM_SHOWTOP,MF_CHECKED);
    ::SetWindowPos(this->m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
    }
    else{
    IsTop = FALSE;
    myMenu.CheckMenuItem(IDM_SHOWTOP,MF_UNCHECKED);
    ::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
    }
    }==
    我这个就是根据用户是否选定"总在最前"的菜单项,从而确定是否把窗口始终最前