Закрытие документов из унаследованного от CAdUiDialog диалога
Вопрос:
Я не могу закрыть документы с использованием closeDocument API из диалога, унаследованного от CAdUiDialog, так как AutoCAD сообщает, что документ занят. Почему это происходит?
Ответ:
Убедитесь что вы вызываете closeDocument API из контекста приложения (смотрите executeInApplicationContext API). Если вы это делаете, то позаботьтесь включить активизацию документов (enableDocumentActivation API). CAdUiDialog отключает активизацию документов в переопределенном методе DoModal и как результат, AutoCAD не может закрыть документы.
Причина, по которой CAcUiDialog это делает, это тот факт, что когда происходит запрос к пользователю для вода данных из этого диалога, то пользователь может переключиться на другой документ и соответственно сделать его активным. CAcUiDialog пытается предотвратить этот сценарий событий.
Обсуждение: http://adn-cis.org/forum/index.php?topic=208
Опубликовано 13.09.2013