CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

输入上下文事件

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

输入上下文事件

该类定义发送的回调,以指示各种提示操作的开始和结束。输入上下文事件可用于确定何时添加和删除输入点筛选器和监视器。它们可以独立使用,也可以与其他回调(如 和 )一起使用,以确定哪些命令正在进行中、命令的哪个提示当前处于活动状态以及用户的响应方式。AcEdInputContextReactorAcEditorReactor::commandWillStart()AcEditorReactor::commandEnded()

下表描述了可以使用输入上下文事件检测到的不同输入状态之间的转换:

输入上下文事件

 

类型

描述

静态

在执行 beginQuiescentState() 回调时输入,在启动 AutoCAD 命令、AutoLISP 函数或 ActiveX 输入函数后退出 endQuiescentState() 回调。这应该是输入文档时堆栈中的唯一状态;它不能堆叠在另一个状态之上。处于此状态时,CMDACTIVE 系统变量为零。 ®

几何, 点

如果 beginGetPoint() 回调是在尚未处于 Geometric、Nonpoint Transient、Selecting Transient 或 Drag Sequence 状态的情况下进行的,则输入。每当进入此状态时,返回的点是最终目标,而不是中间值。对于处于此状态的所有事件,将调用输入点筛选器和监视器。

几何, 非点

在进行 beginGetPoint() 回调时从 Geometric, Nonpoint Transient 输入。从此状态开始,对点输入的另一次调用意味着堆叠一个新状态。任何点都是中间值,可以被直接键入的值覆盖。当进行任何 endGetAngle()、endGetDistance()、endGetOrientation()、endGetCorner() 或 endGetScaleFactor() 回调时,将退出此状态。对于处于此状态的所有事件,将调用输入点筛选器和监视器。

选择

从 Selecting, Transient 输入,当 beginGetPoint() 回调时。对于处于此状态的所有事件,将调用输入点筛选器和监视器。

非几何,非选择

在进行任何 beginGetString()、beginGetKeyword()、beginGetInteger()、beginGetColor() 或 beginGetReal() 回调时输入。这些上下文直接轮询输入,不执行对象捕捉、自动捕捉或输入点筛选,即使在执行交互式数字化器跟踪时光标处于活动状态也是如此。必须启用强制实体选取,输入点监视器才能从此状态获取回调。不会从此状态调用输入点筛选器。

拖动序列

在进行 beginDragSequence() 回调时输入,在进行 endDragsequence() 回调时退出。对 beginGetPoint()、beginGetAngle() 和 beginGetDistance() 的嵌套调用是在中间模式下进行的,因此不会进行状态转换。对于处于此状态的所有事件,将调用输入点筛选器和监视器。

空瞬态

退出最外层的输入状态,即将进入新的输入状态。

几何,非点瞬态

在进行 beginGetAngle()、beginGetDistance()、beginGetOrientation()、beginGetCorner() 或 beginGetScaleFactor() 回调时输入,但已处于 Drag Sequence 状态时除外。这意味着嵌套提示将立即返回并更改状态。进入此状态意味着将输入上下文添加到文档的输入状态堆栈。此状态始终通过 beginGetPoint() 回调转换为 Geometric, Nonpoint。

选择瞬态

在进行任何 beginEntsel()、beginNentsel() 或 beginSSGet() 回调时输入。将处于即时模式选择状态,或者将通过 beginGetPoint() 回调转换为 Selecting 状态。

拖动序列、嵌套操作、瞬态

在进行 AcEditorReactor::commandWillStart() 或 AcEditorReactor::LispWillStart() 回调时从 Drag Sequence 输入。这些暂停拖动序列并在其上堆叠新的输入状态。从此状态,可以转换为任何其他输入状态。当进行平衡 AcEditorReactor 回调时,此堆叠状态将结束,顶部状态下的状态为 Drag Sequence。

加载应用程序时,可以查询系统变量 CMDACTIVE 的值,以找出哪些命令处于活动状态。输入上下文事件可用于记录输入状态之间的转换。

本教程中的主题

  1. 输入上下文事件示例

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-1-19 06:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部