기본 콘텐츠로 건너뛰기

메뉴 제거 예

aaa라는 메뉴를 제거한다.

try{    
    CComPtr pDisp;
    pDisp = acedGetAcadWinApp()->GetIDispatch(TRUE);
        
    CComPtr pComApp;
    HRESULT hr = pDisp->QueryInterface(IID_IAcadApplication,(void**)&pComApp);
    if(FAILED(hr)) return;
    CComPtr pMenuGrps = NULL;
    if(FAILED(pComApp->get_MenuGroups(&pMenuGrps))) return;
        
    CComPtr pMenuGrp = NULL;
    if(FAILED(pMenuGrps->Item(_variant_t((short)0),&pMenuGrp))) return;
        
    CComPtr pPopupMenus = NULL;
    //add a menu item to the first loaded menu group by name "AddedFromArx"
    if(FAILED(pMenuGrp->get_Menus(&pPopupMenus))) return;
        
    //_variant_t index=1L;
    //pPopupMenus->RemoveMenuFromMenuBar(index);
    CComPtr pPopupMenu = NULL;
    long lCount=0L;
    pPopupMenus->get_Count(&lCount);
    for(long l=0;l < lCount;l++){
        pPopupMenus->Item(_variant_t((long)l),&pPopupMenu);
        BSTR name;
        pPopupMenu->get_Name(&name);
        CString strName(name);
        if(strName == "aaa"){
            pPopupMenu->RemoveFromMenuBar();
            break;
        }
    }
}catch(_com_error &es){
    //some error handling
}

댓글