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



              

Макрокоманды Выполнения Класса


Чтобы осуществлять ваш заказной класс, используйте одну из этих трех макрокоманд в источнике file:

·          ACRX_NO_CONS_DEFINE_MEMBERS(CLASS_NAME, PARENT_CLASS)

 Использование для абстрактных классов и любых других классов, которые не должны быть instantiated.

·          ACRX_CONS_DEFINE_MEMBERS(CLASS_NAME, PARENT_CLASS, VERNO)

 Использование для переходных классов, которые могут быть instantiated, но не написано к файлу.

·          ACRX_DXF_DEFINE_MEMBERS(CLASS_NAME, PARENT_CLASS, DWG_VERSION,\

MAINTENANCE_VERSION, PROXY_FLAGS, DXF_NAME, APP)

 Использование для классов, которые могут быть записаны в, или читать от, DWG и DXF файлы.

Каждая из этих макрокоманд определяет следующее:

·         объект описателя Класса

·         функция инициализации Класса (см. “ Функция Инициализации Класса ” на странице 289)

·         desc () функция для этого класса

·         виртуальный isA () функция (унаследованный от AcRxObject) который этот заказной класс отменит

Для AsdkPoly, следующая строка расширяется до очень длинной одиночной линии кода:

ACRX_DXF_DEFINE_MEMBERS(AsdkPoly, AcDbCurve, AcDb::kDHL_CURRENT,\

AcDb::kMReleaseCurrent, 0, POLYGON, /*MSG0*/"AutoCAD");

Когда переформатировано к множественным строкам для ясности, строка напоминает это:

AcRxClass* AsdkPoly::desc()

{

                if (AsdkPoly::gpDesc != 0)

                               return AsdkPoly::gpDesc;

                return AsdkPoly::gpDesc =

                               (AcRxClass*)((AcRxDictionary*)acrxSysRegistry()->

                                               at("ClassDictionary"))->at("AsdkPoly");




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