明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2017|回复: 2

我想用自己写的Move命令取代ACAD的Move命令,怎么做?

[复制链接]
发表于 2004-10-29 16:41:00 | 显示全部楼层 |阅读模式
我想用自己写的Move命令取代ACAD的Move命令,怎么做?
有两个办法:
1。使用AcEdCommandStack::removeCmd Function virtual Acad::ErrorStatusremoveCmd(const char* cmdGroupName,const char* cmdGlobalName) = 0;
注销MOVE命令,但是其中的参数具体是什么,谁能告诉我????
我用AcEdCommandIterator找不到"MOVE"命令,
代码如下:
  1.    [FONT=courier new]
  2. AcEdCommandIterator* iter = acedRegCmds->iterator();
  3.     if (iter == NULL)
  4.     {
  5.       ASSERT(0);
  6.       return;
  7.     }
  8.     // walk through the command stack and make a map of
  9.     // command group to command.
  10.     AcDbVoidPtrArray* tmpVoidPtrArray;
  11.     for (; !iter->done(); iter->next())
  12.     {
  13.       AcEdCommand *pcommand = const_cast<AcEdCommand*>(iter->command());
  14.       acutPrintf("Command LocalName:%s         Command GlobalName:%s\n",
  15.         pcommand->localName(),pcommand->globalName());
  16.       if(0 == strcmp(pcommand->localName(),"move"))
  17.       {
  18.         acutPrintf("LocalName.\n");
  19.         acutPrintf("GroupName:%s",iter->commandGroup());
  20.       }
  21.       if(0 == strcmp(pcommand->globalName(),"_move"))
  22.       {
  23.         acutPrintf("GlobalName.\n");
  24.         acutPrintf("GroupName:%s",iter->commandGroup());
  25.       }
  26.     }
  27.     delete iter;
  28.    [/FONT]
复制代码
2。使用AcEditorReactor::commandWillStartFunction
virtual void       commandWillStart(const char* cmdStr);
但是要终止原来MOVE命令如何做?
我发送ESC可以做到,但是在命令行出现"*ESC*"字样,不好,请问有好的办法么?
发表于 2004-10-30 10:08:00 | 显示全部楼层
用后一种方法直接就可以不留痕迹吧?


记得以前读的一本书上说:如果自定义命令的名称与系统命令重名,会自动屏蔽掉系统内部命令,你试试看。
 楼主| 发表于 2004-10-30 11:39:00 | 显示全部楼层
Group不一样。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 10:31 , Processed in 0.171731 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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