Немодальный диалог и код инструментальной панели, и любые команды, которые должны разработать - сторону активный документ, должны вручную исполнить документ блокировка.

Для более детальной информации относительно документа блокировка, см. “ Явный Документ Блокировка ” на странице 425.

Классы Управления Документа

ObjectARX обеспечивает набор классов, чтобы управлять документами в пределах ObjectARX-приложения. Каждый открытый рисунок имеет связанный объект AcApDocument. AcApDocManager класс управляет всеми объектами AcApDocument, связанными с приложением.

AcApDocument

Объект AcApDocument содержит информацию типа имени файла, объекта MFC CDocument, текущей базы данных, и сохранять формат текущего рисунка.

Дополнительно, объект AcApDocument содержит функции, которые сделают запрос состояния документа блокировка.

AcApDocManager

Объект AcApDocumentManager содержит все объекты документа в приложении (имеется один объект документа для каждого рисунка, который является открытым и отредактируемым). Имеется только один образец, который может быть получен, используя макрокоманду acDocManager ().

AcApDocumentIterator

AcApDocumentIterator класс обеспечивает способность выполнить итерации по набору в настоящее время открытых объектов AcApDocument.

AcApDocManagerReactor

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

Для подробной информации относительно классов управления документа, см. ObjectARX Ссылку. Пример использования этих классов дается позже в этой главе.

НЕ нашли? Не то? Что вы ищете?

Терминология

Следующая секция определяет некоторых обычно используемые сроки{*термины*}, чтобы описать многодокументную среду.

Активный Документ

Документ, который имеет фокус окна, и получает следующее событие ввода пользователя, если пользователь не переключает к (формированию) другого документа. Активный документ - всегда текущий документ при обработке ввода пользователя, но программы могут временно изменять{*заменять*} текущий документ в течение некоторых операций.

Приложение

Полное выполнение программирует и связанные объекты, которые являются обычными к всем открытым документам, типа MFC класса CwinApp. Имеется один и только одно приложение в обращение выполнимой программы Windows.

Прикладной Контекст

Короткий для “ прикладной контекст выполнения. ” См. “ Контекст Выполнения, Приложение ” на странице 421.

Команда

Повсюду этой главы, термин “команда” относится к разнообразию конструкций AutoCAD. Команда состоит из последовательности программы, выполненной как логический модуль работы, которая может требоваться пользователем или одним из AutoCAD, пишущего сценарий двигатели. Независимо от того, какой конструкция используется, команда может быть уничтожена независимо от других действий, выполненных в течение операции системы.

Определенно для API MDI, команда - последовательность кода, который начинается, блокируя документ и концы, разблокируя документ. В общих{*обычных*} случаях, эта блокировка и разблокирование будет выполнена ObjectARX, но в течение других времен, приложение должно делать блокировку и разблокирование непосредственно. Все после конструкций AutoCAD - команды:

§  AutoCAD встроенные команды.

§  Встроенные команды, выполненные непосредственно от командного процессора, типа F2 для экрана изменения. Это включает функцию и клавиши CTRL.

§  обращения функции AutoLISP, которые могут быть определены или в AutoLISP или в ObjectARX-приложении, используя acedDefun ().

§  команды программы External, определенные в acad. pgp.

§  AcEd-зарегистрированные команды, зарегистрированные из AutoCAD.

§  Действия, принятые от немодального окна диалога или некоторого другого внешнего процесса, типично, которому оказывает гостеприимство ObjectARX-приложение.

§  набор действий, принятых от приложения ActiveX во внешнем процессе.

§  Действия, принятые от VBA до интерфейса ActiveX.

§  Щелкают правой кнопкой мыши обращения меню контекста.

Команда, MDI

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

Команда, повторно неиспользуемая

Команда, которая не может быть выполнена в больше чем одном документе одновременно.

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

Командный процессор

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

ОБРАТИТЕ ВНИМАНИЕ На команды, которые выполняются вне контекста единственного{*отдельного*} документа, типа немодальных диалогов и инструментальных панелей, зарегистрированных приложениями AutoCAD или ObjectARX, выполняются изнутри прикладного контекста.

Текущий Документ

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

Это - промежуточное состояние, только, используемое прежде всего приложениями ActiveX и VBA.

База данных

Рисунок AutoCAD, определенно образец AcDbDatabase. Хотя база данных - часть документа, это не синонимично с документом.

Документ

Документ состоит из окна документа MDI, контекста выполнения, связанный редактор состояние, и единственная{*отдельная*} текущая база данных, плюс любое число побочных баз данных, которые открыты в сотрудничестве с этим. Текущая база данных - отображение того и отредактированная через команды. Побочные базы данных или используются таблицей перекрестных ссылок или для общего использования. Документ также включает переменные системы, которые связаны с данным рисунком типа текущей переменной области просмотра.

Документы уникально идентифицированы их адресом, который является указателем AcApDocument*.

Рисунок

Синонимичный с базой данных.

Сеанс редактирования

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

Контекст выполнения приложения

Состояние команды, которое является активным когда новый Windows сообщения ожидают.

Это независимо от всех контекстов выполнения документа. Следующие типы команд выполняются от этого контекста:

§  Внешние ActiveX запросы Автоматизации (типа Visual Basic)

§  VBA

§  диалоговые окна Modeless

Эти типы команд типично работают на активном документе, хотя они не связаны, чтобы делать так. Намерение состоит в том, чтобы обработать документ блокировка и разблокирование разумно очевидно для внешних приложений ActiveX и VBA. Однако, ObjectARX-приложения, переносящие немодальные диалоги будут требоваться, чтобы блокировать и разблокировать документы, явно чтобы взаимодействовать с их базами данных.

MDI-совместимый

ObjectARX-приложения (и приложения ActiveX и COM, но не обязательно Визуальные приложения LISP) которые выполняют все критерии, необходимые, чтобы быть успешно выполненными в MDI AutoCAD. Эти критерии перечислены в секции “ MDI-ЗНАЮЩИЙ Уровень ” на странице 424. ObjectARX-приложения могут регистрировать себя как MDI-ЗНАЮЩИЕ, вызывая

acrxDynamicLinker->registerAppMDIAware(pkt);

При получении kInitAppMsg в пределах их acrxEntryPoint () функция.

"В приложении"

Структура данных, которая должна существовать только однажды в приложение.

"В контексте "

Структура данных, которая должна инициализироваться и поддерживаться для каждого контекста выполнения, включая контексты выполнения документа и прикладной контекст выполнения. Командный процессор AutoCAD - пример реализации " в контекст ".

"В документе"

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

Статический

Когда командный процессор в данном сеансе редактирования не имеет никакого активного AutoCAD, командует, ObjectARX команды, Визуально ШЕПЕЛЯВЯТ оценки, ActiveX запросы, макрокоманды меню AutoCAD, или макрокоманды VBA. В этой точке, Приглашение ко вводу команды отображается в окне команды. Обратите внимание, что немодальные диалоги и инструментальные панели могут быть зарегистрированы, поскольку они не работают через командный процессор.

Сессия

Синонимичный с приложением.

Стек Отмены

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

В случае AutoCAD, базы данных типично открываются согласно только одному документу одновременно, потому что стеки отмены соответствуют документам.

SDI Переменная Системы

ObjectARX обеспечивает режим совместимости для единственного интерфейса рисунка (SDI) предыдущих выпусков. Это управляется SDI переменной системы. Возможные значения для SDI показываются в следующей таблице:

SDI значения переменной системы

0 MDI позволяется

1 SDI режим, установленный пользователем

2 SDI режим, подразумеваемый загруженными non-MDI-aware приложениями

3 SDI подразумеваемый режим и пользователем и загруженными non-MDI-aware приложениями

Знайте следующие ограничения на изменение значения SDI:

§  SDI может только быть установлен в значения 2 или 3 в соответствии с AutoCAD, поскольку приложения загружены и разгружены.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132