Регистрация классов расширения протокола
Регистрировать расширение протокола классов с вашим приложением
1 Инициализируют ваш новый класс родителя расширения протокола и добавляют это к иерархии классов во время выполнения как показано в следующем примере:
AsdkEntTemperature:: rxInit ();
аcrxBuildClassHierarchy ();
Эта функция вызывает, требованы для любого нового ObjectARX
класса, как описано в главе 11, при наследовании заказного ObjectARX
Класса. ”
2 Создают объект каждого класса расширения протокола и добавляют объекты к соответствующим AcRxClass дескрипторным объектам, использующим addX () функция как показано в следующем примере:
pDefaultTemp = new AsdkDefaultTemperature();
pRegionTemp = new AsdkRegionTemperature();
pCircleTemp = new AsdkCircleTemperature();
// Добавить объекты расширения протокола к соответствующим объектам AcRxClass.
//
AcDbEntity::desc()->addX(AsdkEntTemperature::desc (), pDefaultTemp);
AcDbRegion::desc()->addX(AsdkEntTemperature::desc (), pRegionTemp);
AcDbCircle::desc()->addX(AsdkEntTemperature::desc (), pCircleTemp);
Во время выполнения, ObjectARX создает структуру объекта описателя класса, которая включает основную ObjectARX иерархию классов также как объекты расширения протокола, связанные с ObjectARX объектами описателя класса. Следующее рисунок показывает структуру объекта описателя класса для классов, которые касаются AsdkEntTemperature примера в этой главе: