ARX 创建属性表单对话框

思路:

       创建若干个PropPageDialog类型对话框(一般的Digloa通过更改属性也可以变成PropPageDialog),
然后将其中一个作为主对话框,用于承载其它标签项对话框,

       将主对话框创建一个类,继承于AutoCAD ARX 的Tab类CAcUiTabMainDialog, 其它的某些对话框
则继承CAcUiTabChildDialog, 用于作为选项卡.
   
       在主对话框中添加一个Tab控件, 再将Tab控件关联至一个ARX中CAdUiTab 类型的变量,
交在此Tab中添加选项卡.


启动 VS08, 创建一个ARX 工程.(似乎是废话)

ARX 创建属性表单对话框



ARX 创建属性表单对话框

ARX 创建属性表单对话框

添加一个表单对话框

ARX 创建属性表单对话框

建议使用下面三种属性状态

ARX 创建属性表单对话框

使用ARX的模板,创建一个类

ARX 创建属性表单对话框

选择一个 CAcUiTabMainDialog , 作为表单(或标签)页的主对话框.

ARX 创建属性表单对话框


同样, 再添加两个对话框, 选择 CAcUiTabChildDialog, 用于加入标签页中.


ARX 创建属性表单对话框



在CAcUiTabMainDialog 的对话框中添加一个 Tab控件

ARX 创建属性表单对话框

重写 OnInitDialog 

ARX 创建属性表单对话框

添加命令

ARX 创建属性表单对话框

最终效果 

ARX 创建属性表单对话框


在添加了 CAcUiTabMainDialog 以及CAcUiTabChildDialog 的对话框后, 
在 CAcUiTabChildDialog 的对话框类的头文件中加入两个标签页对话框的指针函数
以及一个CAdUiTab 控件关联变量 
头文件:

CAdUiTab        m_tabSheet;// TAB控件变量

 

CSheetOne     *m_pSheetOne;// 表单1变量

CSheetTwo     *m_pSheetTwo;// 表单2变量

 


将标签页添加至主对话框中
源文件:
将指针分配及释放内存

CMainSheet::CMainSheet (CWnd *pParent /*=NULL*/, HINSTANCE hInstance /*=NULL*/) 

 : CAcUiTabMainDialog (CMainSheet::IDD, pParent, hInstance) 

{

// 指针分配

m_pSheetOne = new CSheetOne;

m_pSheetTwo = new CSheetTwo;

}

 

// 删除分配的指针空间

CMainSheet::~CMainSheet()

{

delete m_pSheetOne;

delete m_pSheetTwo;

}


// 手工处理 CAdUiTab 控件与控件变量的数据处理函数

void CMainSheet::DoDataExchange (CDataExchange *pDX) 

{

CAcUiTabMainDialog::DoDataExchange (pDX) ;

 

// TAB 变量与控件关联

DDX_Control(pDX, IDC_TAB_SHEET, m_tabSheet);

}



 

BOOL CMainSheet::OnInitDialog()

{

CAcUiTabMainDialog::OnInitDialog();

// 加入表单页

m_tabSheet.AddTab(0, _T("表单名"), IDD_PROP_ONE, m_pSheetOne);

m_tabSheet.AddTab(1, _T("XX"), IDD_PROP_TWO, m_pSheetTwo);

 

return TRUE;

}

 

http://hi.baidu.com/yulinxx_/item/9337894af29f5312e835048d

转载于:https://www.cnblogs.com/vmyspace/archive/2012/09/18/2690461.html