![]() |
【转帖】关于acedcommand()的一个奇怪问题
关于acedcommand()的一个奇怪问题
关于acedcommand()的一个奇怪问题 想采用启动自动加载的方式,实现一些自定义的命令不成功, 经调试,发现一个奇怪的问题: 比如在acrxentrypoint入口函数里的initapplication()后添加: rc=acedcommand(rtstr,"circle",rtstr,"5,5,0",rtstr,"5",0); 发现rc返回一个负值,命令不能实现; 如果将这句代码放于某一函数中,将此函数加到initapplication()后,则可成功实现命令。 为什么会有这个现象?还请哪位高手指点一二!thx! 壁立千仞,无欲则刚; 海纳百川,有容乃大! 在iniapp()中添加命令组,acedregcmds->addcommand acdocmanager->sendstringtoexecute(acdocmanager->curdocument(), "circle 5,5,0 5 "); 注意:在circle、 5,5,0 和 5 之后必须有一个空格符。 在一些场合不宜直接使用acedcommand()。在arx的初始化部分,不仅是让程序员编写初始化的程序码,acad本身也在初始化,这里不宜编写直接改变acad 数据库数据的程序码,acedcommand()就是属于这类操作。 用sendstringtoexecute()方法可以实现命令调用,不过命令开始执行点不一样,acedcommand(〕直接启动命令,而sendstringtoexecute()是把启动命令的主动权交给acad,acad通过窗口消息队列安排适当点启动命令,一般是在当前任务完成后启动命令。楼主的情况是装入arx后接着启动 circle命令。 |
| 所有的时间均为北京时间。 现在的时间是 08:53 AM. |