马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本文为原创,地址:http://i.taobao.com/u/NTU1NDYyMTg=/blog/detail.htm?spm=0.0.0.0.wEKQ6E&aid=16154784一、状态栏的使用 在AutoCAD中使用状态栏,主要是在AutoCAD的状态栏中内嵌一个状态栏,用于显示你所需要的演示的进度过程。使用状态栏的步骤如下: a. acedSetStatusBarProgressMeter函数在AutoCAD状态栏上设置一进度条,此函数的第一参数为进度条设置一名称标志,在进度条的左侧显示,第二、三参数指定进度的最小位置和最大位置。 b. acedSetStatusBarProgressMeterPos函数用于根据你的需要设置进度条的进度位置。 c. acedRestoreStatusBar函数恢复AutoCAD原来的状态栏。 状态栏的例子在SDK中的Progbar。 二、模式对话框 模式对话框的使用与平常的MFC程序无异。其主要的使用步骤如下: a. 声明一个CAcModuleResourceOverride类的实例。众所周知,对话框是需要使用资源的,而AutoCAD本身也涉及到资源的使用,并且这两种资源的管理方式不是一样的(CAD具体如何管理资源,还未找到相关资料)。为防止CAD的资源与你的ARX程序的资源产生冲突,需要在这两种资源之间进行切换。CAcModuleResourceOverride的作用就是使用这个类的一个实例对象在这两种资源之间进行切换。当这个实例对象构造时,切换到你的ARX程序所提供的资源;当此对象析构时,切换回原来的资源。如下面的使用方法: void MyFunc() { CAcModuleResourceOverride myResource; } 在MyFunc这个函数中,一旦CAcModuleResourceOverride的实例构造完成,MyFunc所在ARX程序的相应资源会被导入;当MyFunc返回时,默认的资源会被恢复。资源切换的方式有三种: Ø 如上例使用默认的构造函数来切换成你的ARX程序的资源,当此类对象析构时,默认资源被切换回来。ARX模块/默认的资源由DLL的CAcExtensionModule维护。 Ø 使用NULL参数构造。选择DLL提供的资源。当对象析构时,恢复原来的资源。 Ø 使用一个非NULL参数构造。选择相关的DLL的资源,这个DLL与当前模块可能不一样。 资源的管理与切换与CAcExtensionModule类有关,这个类有两个目的。首先,此类为AFX_EXTENSION_MODULE结构(通常用于初始化或终结一个MFC扩展DLL)提供一个占位符。第二,为前述的DLL跟踪两类资源的提供者。这两类的资源提供者是模块的资源(通常是DLL本身,但也可是其它的模块)和默认资源(通常是宿主程序,如CAD)。 b.用宿主程序的窗口句柄初始化对话框。 c.调用对话框的DoModal函数。 如下例: CTestDlg dlg(CWnd::FromHandle(adsw_acadMainWnd())); dlg.DoModal(); 前述的宿主程序的窗口句柄也可用acedGetAcadFrame()->m_hWnd得到。
|