CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

MDI 术语

2024-5-18 19:12| 发布者: admin| 查看: 139| 评论: 0|原作者: admin|来自: AutoCAD

MDI 术语

以下部分定义了一些常用术语来描述多文档界面。

活动文档

具有窗口焦点并接收下一个用户输入事件的文档,除非用户正在切换到(激活)另一个文档。在处理用户输入时,活动文档始终是当前文档,但程序可以在某些操作期间临时更改当前文档。

应用

所有打开的文档(如 MFC 类)通用的整个正在运行的程序和关联对象。每次调用可执行程序都有一个且只有一个应用程序。CWinApp

应用程序上下文

“应用程序执行上下文”的缩写。请参阅 “执行上下文、应用程序”。

命令

在本节中,术语“命令”是指各种 AutoCAD 构造。命令由作为逻辑工作单元执行的程序序列组成,用户或其中一个 AutoCAD 脚本引擎可以请求该序列。无论使用哪种构造,都可以独立于系统操作期间执行的其他操作撤消命令。

具体而言,对于 MDI API,命令是一系列代码,从锁定文档开始,到解锁文档结束。在一般情况下,此锁定和解锁将由 ObjectARX 执行,但在其他情况下,应用程序必须直接执行锁定和解锁。以下所有 AutoCAD 构造都是命令:

  • AutoCAD 内置命令。
  • 直接从命令处理器执行的内置命令,例如用于更改屏幕的 F2。这包括功能键和控制键。
  • AutoLISP 函数调用,可以在 AutoLISP 中定义,也可以在 ObjectARX 应用程序中使用 定义。acedDefun()
  • acad.pgp 中定义的外部程序命令。
  • 从AutoCAD注册的AcEd注册命令。
  • 从无模式对话框窗口或其他外部进程(通常由 ObjectARX 应用程序托管)执行的操作。
  • 从外部进程中的 ActiveX 应用程序执行的一组操作。
  • 通过 ActiveX 界面从 VBA 执行的操作。
  • 右键单击上下文菜单调用。
命令,多文档

一组命令,在用户看来是一个命令,在此期间,用户可以更改当前文档,并保持用户提示的持续逻辑流。例如,如果活动命令提示用户在当前文档中输入,并且用户切换了该文档,则应用程序将取消当前旧文档中的命令,并将命令排队以在新的当前文档中开始执行。

命令,不可重入

不能同时在多个文档中执行的命令。不可重入可用于不应同时可用于多个文档的命令,或者当支持多个实例化的需求太大而不值得开销时。

命令处理器

AutoCAD 中的标准输入消息轮询机制,可促进组合键盘和数字化仪的交互。每个打开的文档都存在一个单独的命令处理器。命令处理器的状态作为执行上下文进行维护。

注意:在单个文档上下文之外执行的命令(如 AutoCAD 或 ObjectARX 应用程序发布的无模式对话框和工具栏)从应用程序上下文中执行。
当前文档

可以发出编程请求,使文档的执行上下文变为活动状态,而用户实际上不会将文档视为“已激活”。这只是一种暂时性状态,主要由 ActiveX 和 VBA 应用程序使用。

数据库

AutoCAD 图形,特别是 的实例。尽管数据库是文档的一部分,但它并不等同于文档。AcDbDatabase

公文

文档由一个 MDI 文档窗口、一个执行上下文、一个关联的编辑器状态和一个当前数据库以及与之关联打开的任意数量的侧数据库组成。当前数据库是通过命令显示和编辑的数据库。侧数据库要么由外部参照使用,要么用于一般用途。该文档还包括与给定图形关联的系统变量,例如当前视口变量。文档由其地址(指针)唯一标识。AcApDocument*

绘图

数据库的同义词。

编辑会话

通常与文档同义,但有时包括自文档打开以来的整个历史记录,以及会话的当前状态。

执行上下文、应用程序

当新的操作系统级别消息挂起时处于活动状态的命令状态。它独立于所有文档执行上下文。

以下类型的命令从此上下文执行:

  • 外部 ActiveX 自动化请求(如 Visual Basic)
  • VBA的
  • 无模式对话框

这些类型的命令通常适用于活动文档,尽管它们不受约束。其目的是为外部 ActiveX 应用程序和 VBA 合理透明地处理文档锁定和解锁。但是,发布无模式对话框的 ObjectARX 应用程序将需要显式锁定和解锁文档,以便与其数据库进行交互。

MDI感知

满足所有条件的 ObjectARX 应用程序需要在 MDI AutoCAD 中成功执行。这些标准列在MDI感知级别一节中。ObjectARX 应用程序可以通过调用将自身注册为 MDI 感知

acrxDynamicLinker->registerAppMDIAware(pkt);

当收到他们的功能。kInitAppMsgacrxEntryPoint()

每个应用程序

每个应用程序只需要存在一次的数据结构。

每个上下文

需要为每个执行上下文(包括文档执行上下文和应用程序执行上下文)实例化和维护的数据结构。AutoCAD 命令处理器是按上下文实例化的一个示例。

每个文档

需要为每个文档实例化和维护的任何数据结构、值或其他项目。

静态

当给定编辑会话中的命令处理器没有活动状态时

  • AutoCAD 命令
  • ObjectARX 命令
  • AutoLISP 评估
  • ActiveX 请求
  • AutoCAD 菜单宏
  • VBA 宏

此时,命令窗口中将显示命令提示符。请注意,可以发布无模式对话框和工具栏,因为它们不通过命令处理器运行。

会期

应用程序的同义词。

撤消堆栈

在编辑会话期间记录的状态存储库,用于在请求时按命令撤消编辑会话命令。数据库通常与由主机应用程序提供的撤消堆栈相关联。对于AutoCAD,数据库通常一次只能在一个文档下打开,因为撤消堆栈对应于文档。

父主题:

  1. 多文档界面

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-28 16:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部