明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4634|回复: 7

如何在一个arx中调用另一个arx中定义的命令

[复制链接]
发表于 2008-3-16 18:03:00 | 显示全部楼层 |阅读模式

现在我在程序A.arx中新加入了一个命令comandA,我想在我的另一个程序B.arx中调用这个命令comandA,请问我该如何做?

看了一些acedCommand()和acedInvoke()的帮助,但是一直实验不成功,我需要在程序A中怎么做?用acedDefun()么?用acedRegFun()么?

我在程序B中需要怎么做?谢谢!

发表于 2008-3-16 18:12:00 | 显示全部楼层

在A中acedDefun(),B中acedInvoke()

或者如果仅是调用命令,不需要返回值的话也可以用acedCmd()直接调用命令

 楼主| 发表于 2008-3-16 19:02:00 | 显示全部楼层

还是有点不明白:我在B中的commandB是acedRegCmds->addCommand来加入的。

具体为acedRegCmds->addCommand(_T("DISORDER_COMMANDS"), //命令组的名字
  _T("disorder"),         //全局命令的名字
  _T("disorder"),         //局部命令的名字
  ACRX_CMD_MODAL,         //标志位: 表示其它命令在激活状态时该命令也可以使用
  runFunction          //使用该命令时调用的函数
  );

现在我使acedDefun()是定义runfunction呢还是disorder?在A中调用的时候我是传入的是runfunction还是disorder呢?我是想在A中直接执行disorder这个命令.请教!

发表于 2008-3-16 21:21:00 | 显示全部楼层
acedCommand(RTSTR,_T("disorder"),NULL);
发表于 2008-7-14 16:27:00 | 显示全部楼层
只要嵌套不是太深,用acedCommand直接就可以
发表于 2008-7-18 15:14:00 | 显示全部楼层

acedCommand不一定行,嵌套不是太深也不可以!

用acDocManager->sendStringToExecute()这个家伙试下吧,应该可以的.

发表于 2018-9-4 09:06:15 | 显示全部楼层
确保A.arx先加载,
1、在B.arx里直接向命令行发送commandA命令调用它,没有返回值。
2、arx也是DLL,可以跨DLL显示调用A.arx里commandA要执行的函数,这个可以有返回值。
发表于 2022-11-19 15:36:44 | 显示全部楼层

acedCommand(RTSTR,_T("disorder"),NULL);和acDocManager->sendStringToExecute()这两种方法都可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:55 , Processed in 0.151578 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表