Тема: Программное создание нового пункта меню AutoCAD.

Создаю отдельный пункт меню в AutoCAD следующим образом (по примеру в "ObjectARX 2006\samples\entity\polysamp\polymnu.cpp"):

        IAcadMenuGroup *mnuGrp = NULL;
        if (!getAcadMenuGroup(&mnuGrp))
            return ;
        //now get all the popup menus
        IAcadPopupMenus  *mnus = NULL;
        HRESULT hr = S_OK;
        hr = mnuGrp->get_Menus(&mnus);
        IAcadPopupMenu *myMenu = NULL;
        
        long cnt = 0l;
        hr = mnus->get_Count(&cnt);
    
        VARIANT vtName;
        vtName.vt = VT_I4;
        vtName.lVal = cnt + 1;
        hr = mnus->Add(getResource(2015 /*IDS_MY_MENU*/), &myMenu);        
        mnuGrp->Release();
        cnt = 0;
        VARIANT  vtIndex;
        vtIndex.vt = VT_I4;
        vtIndex.lVal = cnt + 1;
        IAcadPopupMenu *polyMnu = NULL;
        hr = polarisMenu->AddSubMenu(vtIndex, L"Polysamp Application", &polyMnu);
        if(FAILED(hr))
            return;
        polarisMenu->Release();
        
        IAcadPopupMenuItem *polycmds = NULL;
        vtIndex.lVal = 0;
        hr = polyMnu->AddMenuItem(vtIndex, L"POLY", L"_poly ", &polycmds);
        ...
        polycmds->Release();
        polyMnu->Release();
        
        return;

Отдельный пункт меню с подменю "Polysamp Application" не создается. AutoCAD 2006, в дебаге ошибок не увидел. Что я неправильно понял в механизме создания меню?

Re: Программное создание нового пункта меню AutoCAD.

Ты забыл про myMenu->InsertInMenuBar(vtIndex);

Re: Программное создание нового пункта меню AutoCAD.

По традиции верно (:
Спасибо.

Re: Программное создание нового пункта меню AutoCAD.

Возможно ли, а если возможно, то каким образом можно задать иконки для данного меню?

Re: Программное создание нового пункта меню AutoCAD.

> equilibrium
Невозможно без правки CUI-файла.

Re: Программное создание нового пункта меню AutoCAD.

> Александр Ривилис
Александр, а связать с готовыми значками из библиотеки ресурсов нельзя? Я хотел бы напомнить о "танцах панелей" (см. http://www.private.peterlink.ru/poleshc … Dances.htm ) из книги "AutoLISP и Visual LISP в среде AutoCAD". Но там были панели инструментов.

Re: Программное создание нового пункта меню AutoCAD.

> Н.Н.Полещук
При создании кнопок на панели инструментов можно задать иконки к ней относящиеся. Для пункта меню такой возможности нет - фактически иконки для пункта меню выбираются из CUI по совпадению названия пункта меню с пунктом одной из кнопок на панели инструментов. Так что без огромного бубна сплясать здесь не получится. smile

Re: Программное создание нового пункта меню AutoCAD.

Спасибо.