Tab Control用法

来源:互联网 发布:淘宝怎么买高仿 编辑:程序博客网 时间:2024/06/05 10:56


http://blog.csdn.net/aaahuanian/article/details/7904768


1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 
2. 添加Tab Control控件. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl.    
3. 在对话框的初始化函数OnInitDialog里面添加如下代码:    
clip_image001m_tab.InsertItem(0,"参数一");  //添加参数一选项卡    
clip_image001[1]m_tab.InsertItem(1,"参数二");  //添加参数二选项卡    
clip_image001[2]m_tab.InsertItem(2,"结果");    //添加结果选项卡

4.在对话框资源里面添加三个对话框资源, ID分别命名为IDD_PARA1, IDD_PARA2, IDD_RESULT.  style为Child, Border为None. 再分别为其添加对应的基于CDialog类CPara1, CPara2, CResult.    
5. 在CMyTabDlg类中添加三个成员变量m_para1, m_para2, m_result, 分别是三个子对话框的实例. 代码如下:

clip_image001[3]CResult m_result;    
clip_image001[4]CPara2 m_para2;    
clip_image001[5]CPara1 m_para1;    
6. 在IDD_MYTAB_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码:    
clip_image001[9]//关联对话框,并且将IDC_TABTEST控件设为父窗口    
clip_image001[10]m_para1.Create(IDD_PARA1,GetDlgItem(IDC_TABTEST));    
clip_image001[11]m_para2.Create(IDD_PARA2,GetDlgItem(IDC_TABTEST));    
clip_image001[12]m_result.Create(IDD_RESULT,GetDlgItem(IDC_TABTEST));    
clip_image001[13]
clip_image001[14]//获得IDC_TABTEST客户区大小    
clip_image001[15]CRect rs;    
clip_image001[16]m_tab.GetClientRect(&rs);    
clip_image001[17]//调整子对话框在父窗口中的位置    
clip_image001[18]rs.top+=1;     
clip_image001[19]rs.bottom-=60;     
clip_image001[20]rs.left+=1;     
clip_image001[21]rs.right-=2;     
clip_image001[22]
clip_image001[23]//设置子对话框尺寸并移动到指定位置    
clip_image001[24]m_para1.MoveWindow(&rs);    
clip_image001[25]m_para2.MoveWindow(&rs);    
clip_image001[26]m_result.MoveWindow(&rs);    
clip_image001[27]
clip_image001[28]//分别设置隐藏和显示    
clip_image001[29]m_para1.ShowWindow(true);    
clip_image001[30]m_para2.ShowWindow(false);    
clip_image001[31]m_result.ShowWindow(false);    
clip_image001[32]
clip_image001[33]//设置默认的选项卡    
clip_image001[34]m_tab.SetCurSel(0);

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

clip_image001[35]int CurSel = m_tab.GetCurSel();    
clip_image001[36] switch(CurSel)    
clip_image002[3]clip_image003[3] ...{    
clip_image004[3] case 0:    
clip_image004[4]         m_para1.ShowWindow(true);    
clip_image004[5]         m_para2.ShowWindow(false);    
clip_image004[6]         m_result.ShowWindow(false);    
clip_image004[7] break;    
clip_image004[8] case 1:    
clip_image004[9]         m_para1.ShowWindow(false);    
clip_image004[10]         m_para2.ShowWindow(true);    
clip_image004[11]         m_result.ShowWindow(false);    
clip_image004[12] break;    
clip_image004[13] case 2:    
clip_image004[14]         m_para1.ShowWindow(false);    
clip_image004[15]         m_para2.ShowWindow(false);    
clip_image004[16]         m_result.ShowWindow(true);    
clip_image004[17] break;    
clip_image004[18] default:    
clip_image004[19]         ;    
clip_image005[3]     }     
clip_image001[37]
clip_image001[38]    *pResult = 0;

10. 在IDD_MYTAB_DIALOG对话框下面添加一个按钮, 标题为"计算" 为其添加事件响应函数, 代码如下:

clip_image001[39]m_para1.UpdateData(true);    
clip_image001[40]     m_para2.UpdateData(true);    
clip_image001[41]     m_result.SetResultValue(m_para1.GetParaValue()+m_para2.GetParaValue());    
clip_image001[42]     m_result.UpdateData(false);   


0 0