bool AppMenu::GetLastMenuFromMenubar( CString& sMenu ) { IAcadApplication* pAcad = NULL; if( !GetAcadApplication( pAcad ) ) return false; IAcadMenuBar* pMenuBar = NULL; IAcadPopupMenu* pPopUpMenu = NULL; pAcad->get_MenuBar( &pMenuBar ); pAcad->Release(); long numberOfMenus; pMenuBar->get_Count( &numberOfMenus ); //得到菜单栏上面的最后一个菜单 BSTR name; VARIANT vIndex; vIndex.vt = VT_I4; vIndex.lVal = numberOfMenus - 1; pMenuBar->Item( vIndex, &pPopUpMenu ); pMenuBar->Release(); pPopUpMenu->get_NameNoMnemonic( &name ); pPopUpMenu->Release(); sMenu.Format( _T( "%s" ), name ); //debug 大写,用于转化LPWSTR类型字符串 SysFreeString( name ); return true; }
bool CAddCADFrameMenu::GetFirstMenuFromMenubar(CString &sMenu) { IAcadApplication *pAcad = NULL; if(!GetAcadApplication(pAcad)) return false; IAcadMenuBar *pMenuBar=NULL; IAcadPopupMenu *pPopUpMenu=NULL; pAcad->get_MenuBar(&pMenuBar); pAcad->Release(); //得到菜单栏上面的最后一个菜单 BSTR name; VARIANT vIndex; vIndex.vt=VT_I4; vIndex.lVal=0; pMenuBar->Item(vIndex,&pPopUpMenu); pMenuBar->Release(); pPopUpMenu->get_NameNoMnemonic(&name); pPopUpMenu->Release(); sMenu.Format("%S",name);//debug 大写,用于转化LPWSTR类型字符串 SysFreeString(name); return true; }