ObjectARX, AutoCAD. Среда программирования библиотеки C++



         

Использование MFC и ClassWizard, чтобы Обратиться К AutoCAD ActiveX Автоматизация - часть 2


acrxDynamicLinker->registerAppMDIAware(appId);

initApp();

break;

case AcRx::kUnloadAppMsg:

unloadApp();

break;

default:

break;

}

return AcRx::kRetOK;

}

7 следующий шаг должен решить, который интерфейсы являются необходимыми получить круг в пространство модели. В этом случае, IACADAPPLICATION, IAcadDocument, и интерфейсы IACADMODELSPACE требованы. Чтобы получить определения этих интерфейсов, используйте AutoCAD, напечатают библиотеку (acad.tlb). Сначала выберите ClassWizard из меню VIEW. Тогда выберите, добавляют Класс и указку От Библиотеки Типов. В Импорте от диалога Библиотеки Типа, выберите acad.tlb файл из корневого каталога AUTOCAD, и выберите Открытый. От Подтверждающегося диалога Классов, мультивыберите IACADAPPLICATION, IAcadDocument, и IACADMODELSPACE Классы интерфейса. Заголовок и файл выполнения будут по умолчанию к acad.h и acad.cpp, соответственно. Нажмите OK, и ClassWizard импортирует эти классы интерфейса от библиотеки типов.

8 Открывают acad.cpp и acad.h файлы и исследуют классы и методы, которые были импортированы.

ОБРАТИТЕ ВНИМАНИЕ, что все ActiveX интерфейсы Автоматизации зарегистрированы в ActiveX и VBA Ссылке.

9 Открывают AsdkComMfcDocSamp.cpp файл и добавляют следующую функцию к file:

void addCircleThroughMfcCom

()

{

}

10 Добавляют объявления для трех классов интерфейса:

IAcadApplication IApp;

IAcadDocument IDoc;

IAcadModelSpace IMSpace;

11 Используют acedGetAcadWinApp, чтобы получить объект CWinApp MFC для AutoCAD и вызывать GetIDispatch метод.

IDispatch *pDisp = acedGetAcadWinApp()->GetIDispatch (TRUE);

12, как только Вы имеете,  объект IDispatch, прикрепляет это к локально определенному объекту IAcadApplication и удостоверится, что AutoCAD видим:

IApp. AttachDispatch (pDisp);

IApp. SetVisible (true);

13 Получают активный документ, посылают и прикрепляют это к локально определенному объекту IAcadDocument:

pDisp = IApp. GetActiveDocument ();

IDoc. AttachDispatch (pDisp);




Содержание  Назад  Вперед