2007年1月31日星期三

在Visual C++下修改菜单显示

在Visual C++下修改菜单显示

//修改最近文件菜单
void CMruFile::SetMruMenu()
{
    CMenu *pMenu = AfxGetMainWnd()->GetMenu();        //主菜单指针
    CMenu *pFileMenu = pMenu->GetSubMenu(0);        //"文件"菜单指针
    CMenu *pMruMenu = pFileMenu->GetSubMenu(5);        //"最近文件"菜单指针
    pMruMenu->RemoveMenu( ID_MRU1, MF_BYCOMMAND );    //删除各菜单项
    pMruMenu->RemoveMenu( ID_MRU2, MF_BYCOMMAND );
    pMruMenu->RemoveMenu( ID_MRU3, MF_BYCOMMAND );
    pMruMenu->RemoveMenu( ID_MRU4, MF_BYCOMMAND );
    if( m_CurNum>0 )            //重新插入各菜单项
        pMruMenu->InsertMenu( ID_MRU_CLR, MF_BYCOMMAND,
                ID_MRU1, m_PathName[0] );
    if( m_CurNum>1 )
        pMruMenu->InsertMenu( ID_MRU_CLR, MF_BYCOMMAND,
                ID_MRU2, m_PathName[1] );
    if( m_CurNum>2 )
        pMruMenu->InsertMenu( ID_MRU_CLR, MF_BYCOMMAND,
                ID_MRU3, m_PathName[2] );
    if( m_CurNum>3 )
        pMruMenu->InsertMenu( ID_MRU_CLR, MF_BYCOMMAND,
                ID_MRU4, m_PathName[3] );
}

没有评论: