CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

输入上下文事件

2022-12-31 16:32| 发布者: admin| 查看: 271| 评论: 0|来自: AutoCAD

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

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

输入上下文事件

 

类型

描述

静态

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

几何, 点

如果进行 beginGetPoint() 回调时尚未处于几何、非点瞬态、选择瞬态或拖动序列状态,则输入该回调。每当进入此状态时,返回的点是最终目标,而不是中间值。对于处于此状态的所有事件,将调用输入点滤波器和监视器。

几何,非点

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

选择

在进行 beginGetPoint() 回调时从“选择”、“瞬态”输入。对于处于此状态的所有事件,将调用输入点滤波器和监视器。

非几何,非选择

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

拖动序列

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

空瞬态

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

几何,非点瞬态

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

选择瞬态

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

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

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

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


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部