找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2369|回复: 20

[求助]:如何终止一个命令

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2002-12-5 11:40:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何在ARX中终止一个命令?
我使用反应器监测命令,当不允许该用户进行此操作时,系统应该终止当前Acad名令,
但是我该怎么办???
void AsdkEdReactor::commandWillStart(const char * cmdStr)
{
CString strCmd;
strCmd = cmdStr;
if(!UserHasRights(strCmd))
{
AfxMessageBox("对不起,您没有该操作的权限!");
//终止命令
return;
}
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-6 02:49:40 | 显示全部楼层

Re: [求助]:如何终止一个命令

最初由 stoneball 发布
[B]如何在ARX中终止一个命令?
我使用反应器监测命令,当不允许该用户进行此操作时,系统应该终止当前Acad名令,
但是我该怎么办???
void AsdkEdReactor::commandWillStart(const char * cmdStr)
{
CString... [/B]


论坛都讨论过的,建议新来的朋友,先静下心浏览论坛一遍。

下面那MOVE命令为例子,判断是否将要执行MOVE,如果是终止它

  1. [font=courier new]
  2. extern Adesk::Boolean acedPostCommand(const char* );
  3. void MyEditorReactor::commandWillStart(const char * pCmdStr)
  4. {
  5.    if ( strcmp(pCmdStr,"MOVE" ) == 0  )
  6.         acedPostCommand("CANCELCMD");  
  7. }
  8. [/font]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-6 09:07:39 | 显示全部楼层
XDSOFT,这个在截获<插入外部参照>这个ACAD命令时,即使用acedPostCommand("CANCELCMD"); ,也会弹出那个要求选择外部文件的对话框,怎么能不让它弹出那个对话框呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-6 14:07:01 | 显示全部楼层
最初由 megranate 发布
[B]XDSOFT,这个在截获<插入外部参照>这个ACAD命令时,即使用acedPostCommand("CANCELCMD"); ,也会弹出那个要求选择外部文件的对话框,怎么能不让它弹出那个对话框呢? [/B]


请收悄悄话。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2002-12-7 17:13:31 | 显示全部楼层
XDSOFT,这个在截获SAVE、Dxfout等ACAD命令时,即使用acedPostCommand("CANCELCMD"); ,也会弹出对话框,而且命令会继续进行,怎么能不让它弹出那个对话框呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-7 17:17:16 | 显示全部楼层
最初由 stoneball 发布
[B]XDSOFT,这个在截获SAVE、Dxfout等ACAD命令时,即使用acedPostCommand("CANCELCMD"); ,也会弹出对话框,而且命令会继续进行,怎么能不让它弹出那个对话框呢? [/B]


用commandWillStart的时候,应该是在命令运行前截获,不应该弹出命令的对话框啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2002-12-7 17:19:27 | 显示全部楼层

逐一试过

AcEditorReactor::beginSave  无法实现控制,也许我水平有限,请教XDSOFT   SAVE\PLOT等的终止,我曾试过通过API操作命令的对话框,但也没有实现
AcEditorReactor::beginDxfOut 我可以在命令结束后删除文件
AcEditorReactor::beginWblock  可以终止命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-7 17:24:39 | 显示全部楼层
最初由 stoneball 发布
[B],PLOT也一样 [/B]


你要加密你的图形吧?

你换 AcEditorReactor::beginSave  AcEditorReactor::beginDxfOut  AcEditorReactor::beginWblock

等等,去看看联机帮助,有更多的回调控制。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2002-12-7 17:56:14 | 显示全部楼层

啊啊

你指的是API,已经失败啦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-7 17:59:30 | 显示全部楼层
最初由 stoneball 发布
[B]我是网络数据,只是不允许部分用户保存图形到本地 [/B]


试试上面的一些方法吧,如果写好了,希望把代码贴到论坛大家共享,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-9 11:44:45 | 显示全部楼层
我做了拦截加入外部参照的命令,可是它还是弹出了选择文件的对话框呀,你有时间的话,试试看。
解决不了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-9 11:59:22 | 显示全部楼层
acedPostCommand("CANCELCMD")不是ARX自带的函数吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-9 12:28:09 | 显示全部楼层
最初由 hothua 发布
[B]acedPostCommand("CANCELCMD")不是ARX自带的函数吧? [/B]


未公开公布的,使用时候记得要声明下,上面代码有如何声明。
ARX有很多未公开到文档里面的函数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-9 21:19:10 | 显示全部楼层
还是你厉害,这些玩意你是如何知道的啊?

megranate 说的现象我也试过,肯定会出现的,我觉得acedPostCommnad其实采用的消息传递,跟SendMessage差不多,我曾经也说过,这种消息事件函数与CAD内部命令执行是同步的而不是异步的,也就是说当你给CAD发送一个消息时(需要一段时间),CAD的内部指令并不会停下来.所以会出现XREF的对话框等现象.当然也有可能不会出现,这就要看CPU是如何调度了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-10 16:31:13 | 显示全部楼层
那么就没有办法能控制它了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-11 23:46 , Processed in 0.217027 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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