//隐藏
CMenu *pMenu = GetMenu();
CMenu *pSubMenu = pMenu->GetSubMenu(1);   //要隐藏第2列
if (pSubMenu != NULL){
HMENU hMenu = pSubMenu->Detach();
m_pSaveMenu->Attach(hMenu); //保存到变量m_SaveMenu中
SetMenu(NULL);
}//显示m_SaveMenu
??上面是我的代码,隐藏菜单不知道有没有问题,另外显示代码要怎么写呢。。

解决方案 »

  1.   

    SetMenu(pMenu);//显示(即显示最初保存的那个)
      

  2.   

    下面的代码显示/隐藏主框架的File菜单
    void CMainFrame::OnAppAbout() 
    {
        static MENUITEMINFO mii = { 0 };
        static TCHAR buf[50];
        if(mii.cbSize == 0)
        {
            mii.cbSize = sizeof(mii);
            mii.fMask = MIIM_SUBMENU |MIIM_TYPE;
            mii.fType = MFT_STRING;
            mii.fState = MFS_DEFAULT;
            mii.dwTypeData = buf;
            mii.cch = sizeof(buf) / sizeof(TCHAR);
            GetMenu()->GetMenuItemInfo(0, &mii, TRUE);
            GetMenu()->RemoveMenu(0, MF_BYPOSITION);
        }
        else
        {
            InsertMenuItem(GetMenu()->GetSafeHmenu(), 0, TRUE, &mii);
            ZeroMemory(&mii, mii.cbSize);
        }
        DrawMenuBar();
        
    }