mfc 对话框 toolBox 中的控件 Tab box

来源:互联网 发布:超a鞋淘宝 编辑:程序博客网 时间:2024/05/18 05:52

1、在话框上添加Tab Control控件并在Property属性中设置ID为IDC_TAB1. 并 变量名为m_tab. 类型为CTabCtrl。

2、在对话框的初始化函数OnInitDialog里面添加如下代码:
m_tab.InsertItem(0, "第一页");
m_tab.InsertItem(1, "第二页");

3、在对话框资源里面添加两个对话框资源, ID分别命名为IDD_TABSUBDIALOG1,IDD_TABSUBDIALOG2 . 在Property属性中设置style为Child, Border为None. 再分别为其添加对应的基于CDialog类CPara1, CPara2. 

4、在CTabTestDlg类中添加两个成员变量m_para1, m_para2, 分别是两个子对话框的实例. 代码如下: 
CPage2 m_page2;
CPage1 m_page1; 

5、在对话框的初始化函数OnInitDialog里面添加如下代码:

m_page1.Create(IDD_TABSUBDIALOG1,GetDlgItem(IDC_TAB1));
m_page2.Create(IDD_TABSUBDIALOG2,GetDlgItem(IDC_TAB1)); //创建对话框
//获得IDC_TABTEST客户区大小
CRect rs;
m_tab.GetClientRect(&rs);
rs.top+=20; 
rs.bottom-=20; 
rs.left+=20; 
rs.right-=20;  
//设置子对话框尺寸并移动到指定位置
m_page1.MoveWindow(&rs);
m_page2.MoveWindow(&rs); 
//分别设置隐藏和显示
m_page1.ShowWindow(true);
m_page2.ShowWindow(false); 
//设置默认的选项卡
m_tab.SetCurSel(0);

6、添加Tab Control控件的TCN_SELCHANGE事件响应函数OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:

void DlgTab::OnSelchangeTabtest(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
int CurSel = m_tab.GetCurSel();
m_page1.ShowWindow(false);
m_page2.ShowWindow(false);
switch(CurSel)
{
case 0:
m_page1.ShowWindow(true);
break; 
case 1:
m_page2.ShowWindow(true);
break;
}
*pResult = 0;
}

0 0