ObjectARX使用MFC编写对话框一

2025-11-11 14:38:45

1、右键点击项目选择添加类则出现如下对话框

选择 MFC support class

输入文件 ColRecDlg 后点击添加。

ObjectARX使用MFC编写对话框一

2、Class Name 输入你想保存的类名(此处是ColRecDlg);

Base Class   选择基类 CAcUiDialog ;

点击完成生成了对话框类。

ObjectARX使用MFC编写对话框一

3、到类资源项中  双击上一步创建的对话框ID(此处是 ID_COLRECDLG)

在对话框编辑器中选择 button 按钮。

ObjectARX使用MFC编写对话框一

4、在 button1 上右键选择属性。

可以更改 caption 和 ID 

caption 为按钮上的文字。

ID 为该 button 的标识。

ObjectARX使用MFC编写对话框一

5、设置之后切回到 ColRecDlgd 的 cpp 与 h 文件

就会出现如下的代码。

在 void nDosColRecDlg::OnBnClicked_UpdataColumnData()

函数定义中输入 MessageBox(_T("ok")) ;

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

6、下面为 ColRecDlg 添加 InitDialog 消息响应。

打开类视图在 ColRecDlg 类上右键选择属性。出现 ColRecDlg 类属性对话框。

ObjectARX使用MFC编写对话框一

7、重写 InitDialog 消息响应。

下图中因为我已经选择了重写,故再次打开不第一次创建不同。

InitDialog 是在对话框被加载的时候,要执行的操作,比如子程序等。

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

8、添加了之后应出现如下代码 

在 OnInitDialog 中添加如下代码

acutPrintf(_T("\n 对话框初始化 OK: %d") ,001) ;

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

9、添加 sd 命令, 用来显示对话框。

在 sd 命令下添加如下代码:

CAcModuleResourceOverride resOverride;

//显示ObjectARX的模态对话框

ColRecDlg theDialog;  (ColRecDlg 为创建的对话框类名)

theDialog.DoModal();

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

10、在 acrxEntryPoint.cpp 中加入包含文件  #include "ColRecDlg.h"

ObjectARX使用MFC编写对话框一

11、编译生成,加载之后输入 sd 命令即可出现创建的对话框。

点击更新按钮,出现消息框“ok”

至此这个简单的对话框程序就创建完成了,后面的步骤为废弃的。

(由于本对话框是模态对话框,故初始化对话框的消息,在退出对话框才显示)

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

12、Autodesk 类浏览工具,点击刷新按钮即可显示上一步创建的对话框类。

在该类上单击右键,选择添加变量;

选择私有类型 private;

变量类型输入  CAcUiPickButton;

变量名输入  ColCheck;

点击完成即可生成如下图所示代码。

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

13、为 ColRecDlg 添加 InitDialog 消息响应。

打开类视图在 ColRecDlg 类上右键选择属性。出现 ColRecDlg 类属性对话框。

在该属性对话框中点击 “重写”选项如下图所示。

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

14、重写 InitDialog 消息响应。

下图中因为我已经选择了重写,故再次打开不第一次创建不同。

创建成功后应显示如下代码。

ObjectARX使用MFC编写对话框一

ObjectARX使用MFC编写对话框一

15、用同样的方法重写 OnCancel消息响应。

这两个消息相应必须要创建的。

ObjectARX使用MFC编写对话框一

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢