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

       

Другие соображения по прикладному контексту выполнения


Имеются также некоторые возможности и ограничения, которые применяются к коду, выполняющему в прикладном контексте выполнения.

§

когда контекст выполнения ваш код выполняется под,  не неявен в вашей структуре кода, Вы можете делать этот запрос, чтобы найти,является ли это прикладной контекст выполнения:

Adesk::Boolean

AcApDocManager::isApplicationContext() const;

§         Все ActiveX члены ввода пользователя может использоваться, но удостовериться, что Вы вызываете их на сервисный объект, связанный с активным и текущим документом. Как отмечено выше, переключение документа будет заблокировано, когда ввод пользователя получен в этом контексте. Вы можете получить IACADDOCUMENT* образец, который соответствует потоку AcApDocument через запрос:

acDocManager()->curDocument()->cDoc()->GetIDispatch( BOOL bAddRef);

§         Все ObjectARX функции ввода пользователя может быть вызван с текущим активным документом,  неявно используемым. Как отмечено выше, переключение документа будет заблокировано, когда ввод пользователя получен в этом контексте.

§         Прикладной код, выполняющийся от прикладного контекста может использовать следующую функцию члена, чтобы переключить или текущий и активный документ, вместе или индивидуально, как желательно.

virtual Acad::ErrorStatus

setCurDocument(

AcApDocument* pDoc,

AcAp::DocLockMode = AcAp::kNone,

bool activate = false) = 0;

§         чередуясь между запросом ввода пользователя и изменения или формирования текущего документа, можно запрашивать относительно ввода от множественных документов от единственного контекста выполнения и единственной последовательности кода. Недостаток{*препятствие*} - то переключение документа пользователем,  заблокирован при запросе ввода, так что код должен знать, к которому документу требуется переключить.

§         когда активные и текущие документы отличаются, знать что ActiveX и ObjectARX ввод пользователя функции не будет работать должным образом. Используйте curDocument () и mdiActiveDocument () функции, чтобы проверить текущие и активные документы.

§         если приложение выгружается с текущим документом и активным отличным документом, следующее входное событие восстановит текущий документ назад к активному документу.

§         когда код, выполняющийся от прикладного контекста запрашивает ввод пользователя, используя ActiveX функции ввода пользователя, автоматическое интерактивное переключение документа заблокирован, хотя текущее переключение документа может быть выполнено.



Содержание раздела