几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】简单总结cacuidockcontrolbar应用过程 (http://www.dimcax.com/hust/showthread.php?t=7992)

yang686526 2009-04-18 06:37 PM

【转帖】简单总结cacuidockcontrolbar应用过程
 
简单总结cacuidockcontrolbar应用过程
已经传上来了啊,呵呵,版主可以看看,我现在是重新做工程了,真是体力活啊!
回复
我试过了,问题在m_ptree.subclassdlgitem(idc_tree,this);这一句,如果注释掉这一句代码,运行就正常了,但不知道应该怎么向cedittreectrl添加item.
change your life style.
我尝试不用文档反应器,在acrxentrypoint消息循环中关闭dockcontrolbar,只是为验证一下,因此界面没有做的太复杂,退出文档时dockcontrolbar可以关闭,autocad也没有出错,具体代码如下,各位有兴趣可以试一下
case acrx::kunloaddwgmsg:
//该消息是在文档关闭之前,因此最后一个文档关闭时,文档枚举计数为1,而不是0
idwg=0;
pdociter = acdocmanager->newacapdocumentiterator();
for ( ; !pdociter->done(); pdociter->step()) {
pdoc = pdociter->document();
idwg++;
if (idwg>1) {break;}
}
delete pdociter;
if (i==1) {enddockbar();//关闭dockcontrolbar}
break;
}
acrxentrypoint(acrx::appmsgcode msg, void* pkt)
{
int idwg=0;
switch (msg) {
case acrx::kinitappmsg:
acrxdynamiclinker->unlockapplication(pkt);
acrxdynamiclinker->registerappmdiaware(pkt);
initapplication();
break;
case acrx::kunloaddwgmsg:
{
acapdocumentiterator *pdociter = acdocmanager->newacapdocumentiterator();
for ( ; !pdociter->done(); pdociter->step()) {
acapdocument *pdoc = pdociter->document();
idwg++;
if (idwg>1) {break;}
}
delete pdociter;
if (idwg==1) {acedgetacadframe ()->dockcontrolbar(pinsptree);} //关闭dockcontrolbar
break;
}
case acrx::kunloadappmsg:
unloadapplication();
break;
}
return acrx::kretok;
}
这样好像不行吧,呵呵,最后一个文档关闭时,文档枚举计数的却为1,但好像还是不行,可能我的写的不对吧,楼上的高手能不能指名一下呢。

我现在没有用那个tree相关的类,自己单独再写,好像还没出问题,可能是那个地方造成的吧,反正感觉有点别扭,我当初调试时也是注销掉了m_ptree.subclassdlgitem(idc_tree,this);就不会出问题,但这是达不到我的目的,呵呵,子类化的问题感觉很奇怪^_^
没有人回答了吗,有点点失望诶,帖子都沉下去了!
怎么一直没人回答了?郁闷中
谢谢王老师,正在学习这个东东^_^
//www.mystruc.com
嗯,来学习学习。。被导师的项目搞得郁闷致死,以前从来没接触过arx


所有的时间均为北京时间。 现在的时间是 02:44 AM.