一、本节课程
C++ ARX二次开发-MFC 模态对话框modal dialog
二、本节要讲解的知识点
1、使用MFC的对话框在ObjectARX应用程序中创建模态对话框的一般过程。
2、使用基于ObjectARX的对话框创建与AutoCAD风格相同的用户界面,以及隐藏模态对话框和AutoCAD进行交互的方法。
三、具体内容
1、思路:
在ObjectARX中显示一个模态对话框非常简单,只需要创建一个对话框,并将其余CDialog或其派生类相关联,调用CDialog类的DoModal函数即可。
在ObjectARX中,以AcUi开头的类用于创建与AutoCAD风格一致的用户界面,这组类从MFC继承,除了具有基类的特性外,还引入一些在AutoCAD中特有的特性。
2、实现:
(1)直接使用MFC
1)打开VS2012 ,新建一个ARX项目,需要勾选:在共享的MFC库里面使用MFC,其他的可以保持默认。
2)添加对话框资源,在解决方案资源管理器的.rc文件双击,就会弹出资源视图。在资源视图界面,点击右键插入对话框资源。
在资源设计视图里面:标题和ID等内容可以进行修改。根据需要添加其他需要添加的控件。
3)为对话框资源添加对应的类。就是在对话框设计视图双击就行,就会弹出对应的对话框用来新建对话框类的,确定后就会生成两个文件 对话框类.h 对话框类.Cpp文件。
此时需要注意的是,若工程编译不成功,就需要在“对话框类.h” #include "resource.h"
4)需要在acrxEntryPoint.cpp文件里面去添加命令的定义,还有命令的实现函数,用来使用我们的对话框的(要使用CMfcDialog类,需要在开头处添加头文件的包含#include "MfcDialog.h")。
ACED_ARXCOMMAND_ENTRY_AUTO(CModalDialogApp, yunyouMyGroup, MfcModal, MfcModal, ACRX_CMD_MODAL, NULL)
|
static void yunyouMyGroupMfcModal () { CMfcDialog theDialog; if (theDialog.DoModal()==IDOK) { AfxMessageBox(TEXT("点击确定关闭了对话框!")); } } |
5)编译和测试(编译时注意与自己的机器平台一致,win32还是 X64)。
(2)使用ObjectARX基于MFC的类库(AcUi打头的类库)
1)添加类
2)添加成员变量
3)添加消息响应函数
//---------------------------------------------------------------------- |