ARX 创建属性表单对话框

思路:

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

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


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









添加一个表单对话框



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



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



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




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






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



重写 OnInitDialog 



添加命令



最终效果 




在添加了 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

posted @ 2012-09-18 13:55  晴天有时下鱼  阅读(719)  评论(1编辑  收藏  举报