MFC Tab控件的使用

来源:互联网 发布:岂可及乎中及的意思 编辑:程序博客网 时间:2024/04/30 06:16

一、Tab控件

 


二、应用:

Tab控件的好处是,可以减少程序的排放空间,让用户操作也是很方便的,一幕了然。

 

三、实现步骤

步骤一:建一个MFC的向导,工程类型为基本的对话框,取名为TabcontrolTest

步骤二:对话框中放入一个Tabcontrol控件(IDC_TABTEST),关联一个变量,取名m_tab;再插入2个资源对话框。如下图


分别设置对话框的属性为 stylechild(目的为了使自己能嵌入到其他的控件中,后面有说明)border:设置为none(这个就是为了好看,不信得话你可以不设置这个属性),去掉Title Bar 这个选项

   

步骤三:分别为这2个对话框,关联一个类,类名分别为CPara1, CPara2,在这2个对话框中分别放个按钮或者文本之类的东西,

步骤四:回到CTabcontrolTestDlg类中,添加2个成员变量,分别是2个对话框的成员变量,即: CPara1  m_para1;CPara2  m_para2; 并且在CPP文件中添加#include " CPara1.h"#include " CPara2.h  "

步骤五:在CTabcontrolTestDlg类中初始化OnInitDialog()函数中添加如下函数。

//TODO: 在此添加额外的初始化代码  m_tab.InsertItem(0,_T("参数一"));   m_tab.InsertItem(1,_T("参数二"));      m_para1.Create(IDD_PARA1,GetDlgItem(IDC_TABTEST));  m_para2.Create(IDD_PARA2,GetDlgItem(IDC_TABTEST));   //获得IDC_TABTEST客户区大小  CRect rs;  m_tab.GetClientRect(&rs);  //调整子对话框在父窗口中的位置  rs.top+=2;  rs.bottom-=25;  rs.left+=2;  rs.right-=4;   //设置子对话框尺寸并移动到指定位置  m_para1.MoveWindow(&rs);  m_para2.MoveWindow(&rs);    //分别设置隐藏和显示  m_para1.ShowWindow(true);  m_para2.ShowWindow(false);  //设置默认的选项卡  m_tab.SetCurSel(0);

步骤六:当然了,当你点击Tabcontrol控件标签页的时候会触发OnSelchange消息,如果不重载这个消息的时候,对话框就会只显示CPara1,而不显示CPara1,页面也不会切换,我在刻意在这个消息映射函数中添加我们自己的处理过程。在Tab Contronl添加事件“OnSelchange消息再在该响应函数中添加代码,如下:

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

七:程序界面如下图

  

 

0 0