应用程序执行上下文下的代码差异
在应用程序执行上下文中执行的代码与其他上下文中的代码之间存在许多差异。差异描述如下:
- 它不是任何特定文档的命令处理器状态的一部分。
- 它可以激活不同的文档,而不会立即挂起自身,尽管它必须在新的活动文档处理其输入之前完成并返回。
- 在此上下文中提示用户输入时,AutoLISP 也会被禁用。
- 对于无模式对话框和外部进程生成的 ActiveX 请求,代码必须锁定文档,包括当前文档。使用方法并将应用于文档。IAcadDocumentStartUndoMarker()EndUndoMarker()kWriteLock
- 不能从应用程序执行上下文中使用命令工具,特别是 和 函数。acedCommandS()/acedCommandC()acedCmdS()/acedCmdC()
- 和 方法更改活动文档,但不会暂停在应用程序上下文下运行的代码的执行。它们将暂停在文档执行上下文中运行的代码的执行。从应用程序上下文调用时,该方法将始终对字符串进行排队,而从文档上下文调用字符串时,如果 activate 参数为 ,则对字符串进行排队,如果 activate 参数为 ,则立即挂起文档上下文。AcApDocManager::sendStringToExecute()AcApDocManager::activateDocument()AcApDocManager::sendStringToExecute()kFalsekTrue
|