AcAp库各类概述

最近学习ObjectARX,时间匆忙,只翻译了ObjectARX for AutoCAD 2012的ObjectARX Reference Guide中的AcAp库的各类概述。

AcApDataManager

类层次结构:

AcRxObject

         AcApDocManagerReactor

                   AcApDataManager

C++:

template <class T>

class AcApDataManager : publicAcApDocManagerReactor;

文件:

AcApDMgr.h

概述:

         AcApDataManager是一个模板类,可以帮助开发者通过per-document而不是全局基础保存数据。        

         AcApDatamanager对象是per-document数据对象的容器。一个应用程序定义一个类来容纳它的文档数据,然后用这个类特化AcApDatamanager模板。这个特化的实例为每个在AutoCAD编辑器中打开的绘图创建一个文档数据对象。一个应用程序应当创建仅仅一个AcApDatamanager类的实例。

         使用docData()来获取给定的DWG文件的per-document数据对象。注意,per-document数据对象的实例是在其第一次被访问而不是当文档被创建时创建的。per-document数据对象在文档被关闭时销毁。

 

         在你的应用程序中,声明该类的唯一对象如下:

                   AcApDataManagermyPerDocDataClassInstance;

         使用下面调用中的一个来存取你的应用程序数据:

                   myPerDocDataClassInstance.docData().m_myMemberVariable

                   myPerDocDataClassInstance.docData(curDoc()).m_myMemberVariable

 

AcApDocManager: // 帮助文档中有

类层次结构:

AcRxObject

         AcApDocManager

 

文件:

acdocman.h

概述:

         AcApDocManager对象是所有文件对象(每个打开的正在编辑的图都有一个文件对象)的容器。只有一个可以通过使用宏acDocManager获取的实例。

 

AcApDocManagerReactor

类层次结构:

AcRxObject

         AcApDocManagerReactor

                   AcApDataManager

文件:

acdocman.h

概述:

         该类提供多种文档管理事件的通知。

 

AcApDocument

类层次结构:

AcRxObject

         AcApDocument

文件:

acdocman.h

概述:

         每个打开的绘图将会有一个关联的AcApDocument对象。AcApDocument对象包含很多信息,例如,文件名字、MFC的CDocument对象、当前数据库以及当前绘图的保存格式。

        

         此外,还有文档锁定状态查询函数。两个私有的:

                   AcApDocument::lockMode(),该函数返回最严格的从执行上下文而不是调用者的作用于当前文档的锁定模式,这样,就可以决定你可以添加到文档的锁定模式。

                   AcApDocument::myLockMode(),该函数返回当前的锁定状态,当前的执行状态在文档中,当前的执行状态可以比AcApDocument::lockMode()的返回值更严格或者放松。

 

AcApDocumentIterator

类层次结构:

AcRxObject

         AcApDocumentIterator

概述:

         该函数提供对当前打开的AcApDocument对象的设置进行迭代的基本方法。

 

AcApLayoutManager

类层次结构:

AcRxObject

         AcDbLayoutManager

                   AcApLayoutManager

文件:

acaplmgr.h

概述:

         应用程序特有的操作AcDbLayout对象的接口类。这个类也控制者与GUI属性有关的layout(布局)。

 

AcApLongTransactionManager

类层级结构:

AcRxObject

         AcApLongTransactionManager

文件:

Ingtrans.h

概述:

         这个对象用作启动和控制长事物的管理器。每个AutoCAD会话只有一个AcApLongTransactionManager ,并通过acapLongTransactionManagerPtr返回的指针来访问。

 

AcApLongTransactionReactor

类层次结构:

AcRxObject

         AcApLongTransactionReactor

文件:

Ingtrans.h

概述:

         AcApLongTransactionReactor类提供所有和长事物关联的动作的回调函数。

 

AcApProfileManager

类层次结构:

AcApProfileManager

文件:

acprofile.h

概述:

         这个类提供了在“选项”对话框的Profiles项中提供的访问所有的Profiles(侧面、轮廓、剖面)操作的方法。

 

AcApStatusBar

类层次结构:

AcApStatusBar

文件:

AcStatusBar.h

概述:

         AcApStatusBar类可以定制AutoCAD绘图状态栏。应用程序通过调用 AcApDocument::drawingStatusBar()函数获得指向AcApStatusBar对象的指针。

         该类提供用于添加panes(窗格)和tray(托盘)项目和将它们从绘图状态栏删除的函数。

 

         pane显示在主状态栏区域。关于pane对象的信息,查看AcPane类。

         tray项目显示在状态栏的tray图标区域。关于tray项目对象,查看AcTrayItem类。

        

         AcStatusBarItem类提供了支持panes和tray项目的方法。

 

         向状态栏添加一个新的pane:

         1.从AcPane类派生一个类,并重载OnRButtonDown(), OnLButtonDown(), and OnLButtonDblClk()方法来自定义pane的想要的鼠标事件行为。

         2.调用AcApStatusBar::Add(AcPane* pPane, bool bUpdata)或者AcApStatusBar::Insert(AcPane* pPane, BOOL bUpdate)。

 

         向状态栏tray图标区域添加一个新的tray图标:

         1.从AcTrayItem类派生一个类,并重载OnRButtonDown(), OnLButtonDown(), and OnLButtonDblClk()方法来自定义pane的想要的鼠标事件行为。

         2.调用 AcApStatusBar::Add(AcTrayItem* pTrayItem, BOOL bUpdate) 或者AcApStatusBar::Insert(AcTrayItem*pTrayItem, BOOL bUpdate)

 

         现存的panes和tray项目可以使用额外的AcApStatusBar方法被修改和移除。

注释:

         如果应用程序已经向状态栏添加了一个pane或者tray项目,它应该负责在其卸载时删除它们。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平