CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

命令堆栈

2023-1-1 07:02| 发布者: admin| 查看: 353| 评论: 0|来自: AutoCAD

AutoCAD 命令存储在命令堆栈中的组中,该命令堆栈由类定义。每个 AutoCAD 会话将创建一个命令堆栈实例。此堆栈由您定义的自定义命令组成。宏允许您访问命令堆栈。AcEdCommandStackacedRegCmds()

添加命令时,还会为其分配组名。一个好的策略是使用已注册的开发人员前缀作为组名称,以避免与其他命令发生名称冲突。给定组中的命令名称必须是唯一的,并且组名称必须是唯一的。但是,多个应用程序可以添加同名的命令,因为组名使命令明确。

您通常使用函数一次添加一个命令,并使用函数按组删除命令。您还可以使用该函数一次删除一个命令。作为退出前清理的一部分,应用程序需要删除它注册的任何命令。AcEdCommandStack::addCommand()removeGroup()removeCmd()

函数的签名是addCommand()

Acad::ErrorStatus 
addCommand(
    const char* cmdGroupName,
    const char* cmdGlobalName,
    const char* cmdLocalName,
    Adesk::Int32 commandFlags,
    AcRxFunctionPtr functionAddr,
    AcEdUIContext *UIContext = NULL,
    int fcode=-1,
    HINSTANCE hResourceHandle = NULL,
    AcEdCommand** cmdPtrRet = NULL);
cmd组名称

要向其添加命令的组的 ASCII 表示形式。如果该组不存在,则会在添加命令之前创建该组。

cmd全局名称

要添加的命令名称的 ASCII 表示形式。此名称表示全局或未翻译的名称(请参阅“全局与本地命令名称”)。

cmd本地名称

要添加的命令名称的 ASCII 表示形式。此名称表示本地名称或翻译名称。

命令标志

与命令关联的标志。可能的值包括ACRX_CMD_TRANSPARENT、ACRX_CMD_MODAL、ACRX_CMD_USEPICKSET和ACRX_CMD_REDRAW(请参阅“透明命令与模式命令”)。

函数地址

AutoCAD 调用此命令时要执行的函数的地址。

UiContext

输入指针到回调类。AcEdUIContext

fcode

输入分配给命令的整数代码。

hResourceHandle

执行命令时要设为当前状态的输入资源句柄

cmdPtrRet

输入指针指向要填充的 AcEdCommand 对象的地址的指针,用于添加命令

注意:建议以前缀开头所有组和命令名称,以避免与其他加载的应用程序发生可能的命名冲突。您选择的前缀可能是公司名称的缩写或其他短名称,有助于将应用程序注册的组和命令与其他应用程序注册的组和命令唯一标识。例如,可以将 ADSK 的前缀添加到 MOVE 命令的版本中,从而生成 ASDKMOVE 的最终名称。

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部