http://www.mjtd.com/bbs/dispbbs.asp...ID=32164&page=4
程序添加菜單
void CreateMenus()
{
LPDISPATCH pDisp = NULL;
pDisp = acedGetAcadWinApp()->GetIDispatch(TRUE);
if (pDisp == NULL)
return;
IAcadApplication *acadApp = NULL;
HRESULT hr = S_OK;
hr = pDisp->QueryInterface(IID_IAcadApplication, (LPVOID*)&acadApp);
if (FAILED(hr))
{
acadApp->Release();
return;
}
IAcadMenuGroups *pMenuGroups = NULL;
acadApp->get_MenuGroups(&pMenuGroups);
_bstr_t myBstrWrapper("XXX.mns");
BSTR bsName = (BSTR)myBstrWrapper;
IAcadMenuGroup *pMenuGroup;
VARIANT index;
VariantInit(&index);
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
pMenuGroups->Load(bsName,index,&pMenuGroup);
IAcadPopupMenus *pMenus;
pMenuGroup->get_Menus(&pMenus);
VariantInit(&index);
V_VT(&index) = VT_I4;
V_I4(&index) = 2;
pMenus->InsertMenuInMenuBar(L"XXX",index);
pMenus->Release();
pMenuGroup->Release();
pMenuGroups->Release();
acadApp->Release();
}