iumike 发表于 2009-6-26 12:54:45

如何在 DRX 中定义 CDocData,就像在 ObjectARX 中一样

使用ObjectArx可以定义和访问CDocData类
/-----唯一的文档管理器对象。您可以使用DocVars对象在整个应用程序中检索特定于文档的数据
在Bricscad DRX中是否存在类似的方法curDocument()->fileName();

#pragma once
#define odDocManager odapDocManager()
templateclass OdDocDataManager : public OdApDocManagerReactor
{
public:
OdDocDataManager() {
    odDocManager->addReactor (this) ;
}
~OdDocDataManager() {
    odDocManager->removeReactor (this) ;
}
virtual void documentToBeDestroyed (OdApDocument *pDoc) {
    m_dataMap.RemoveKey(pDoc) ;
}
T &docData () {
    return (docData (odDocManager->curDocument())) ;
}
T &docData (OdApDocument *pDoc) {
    return (m_dataMap) ;
}
void allDocData(CArray &carray) const{
    OdApDocument *pDoc; T Value;
    POSITION pos = m_dataMap.GetStartPosition();
    while (pos != NULL){
      m_dataMap.GetNextAssoc(pos,pDoc,Value);
      carray.Add (Value);
    }
}
__declspec(property(get=docData))T data;
private:
CMap m_dataMap ;
} ;

iumike 发表于 2009-6-26 12:57:27

这太棒了!!!!!我今天就广泛测试!
谢谢丹尼尔!!!

iumike 发表于 2009-6-26 13:03:07

如果您发现任何问题,请随时通知我。

iumike 发表于 2009-6-27 02:49:18

代码示例工作完美!!!
再次感谢!
话筒
页: [1]
查看完整版本: 如何在 DRX 中定义 CDocData,就像在 ObjectARX 中一样