找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2358|回复: 1

[分享] AutoCAD ObjectARX二次开发实例(2)――状态栏、模式对话框

[复制链接]

已领礼包: 13个

财富等级: 恭喜发财

发表于 2013-5-20 02:11:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本文为原创,地址: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得到。


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-6-11 17:37:08 | 显示全部楼层
好文!学习了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 10:24 , Processed in 0.319319 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表