简单总结CAcUiDockControlBar应用过程
zfbj版主,中午写了一点DockControlBar实现步骤的,还是发上来吧.要补充的一点就是:
1. 要建立文档反应器,如果当前文档全部关闭时,就要关闭当前的DockControlBar,否则AutoCAD异常退出.
2. 如果要通过DockControlBar上的控件执行打开操作AutoCAD实体的话, 要在处理前调用
acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
调用结束后
acDocManager->unlockDocument(curDoc());
否则返回eLockViolation错误信息. 真诚的想问问楼主,为什么第一条有“要建立文档反应器,如果当前文档全部关闭时,就要关闭当前的DockControlBar,否则AutoCAD异常退出. ”这个说法^_^。
我做了一个继承自AcDialogBar的对话框,加载到autocad里没有什么问题,但是我在那个对话框上加了个IDC_TREE控件,然后对其进行子类化后,可以显示出树来,但是整个退出autocad的时候出了毛病,报个致命错误:“unhandled access violation reading 0x 0038 Exception at 73d31c9dh”,是不是也是你所说的问题呢,我调试的时候可以看到可能是读了没有初始化的内存。
到这个地方可能出错了:
virtual void documentToBeDestroyed( AcApDocument *pDoc )<BR> {<BR> m_dataMap.erase(pDoc);<BR> <BR> }
也不知道是不是这个问题,要怎么个解决才是?呵呵,特意请教!麻烦您解答一下,有表述不清的地方愿谅解! 本帖最后由 作者 于 2004-11-15 0:14:41 编辑
m_dataMap.erase(pDoc); 这一句应该是什么意思呢?
你可以把这一句先注释掉试一试,如果autocad退出时不再出现你说的错误,那问题可能就在这儿.
至于为什么要建立文档反应器,我也是试出来的,如果当前没有方档打开,DockBar不能正确地停泊在autocad窗体框架边缘,为了解决这个问题,我通过文档反应器适时地关闭DockBar.
你能贴出你的工程吗?我很想看一看(学习)你的程序. 多谢多谢,按你的方法已经作出了框架。 我把代码放到晓东空间了,昨天上传不了,sorry! 今天不知道能不能传,看看! 本帖最后由 作者 于 2004-11-16 12:17:21 编辑
今天不知道能不能传,看看!原来一直没看到右边还有个按钮要点才能上传,呵呵,斑竹帮忙看看哦,呵呵,
难怪我传不上来,原来超过大小了,呵呵
晓东空间下载太麻烦了,速度也不理想.
刚才试了找不到服务器. 难怪我传不上来,原来超过大小了,呵呵 删除Debug, Release和*.ncb,只保留源代码文件.
页:
[1]
2