使用ObjectArx可以定义和访问CDocData类
/-----唯一的文档管理器对象。您可以使用DocVars对象在整个应用程序中检索特定于文档的数据
在Bricscad DRX中是否存在类似的方法curDocument()->fileName();
[/code]
- #pragma once
- #define odDocManager odapDocManager()
- template class 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[pDoc]) ;
- }
- 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 ;
- } ;
|