VS中Tab Control用法
2013-09-04 15:43
1196 查看
用Tab Control实现一个多页面选项卡。
具体步骤如下:
1. 打开VS,用向导新建一个基于对话框的MFC应用程序。
2. 将默认的窗口上的两按钮和一个静态文本删掉(当然该步骤不是必须的,想留着也可以)。
3. 在窗口上拖一个Tab Control控件,大小位置自己定,右击开控件选择“添加变量”,添加一个control类型的变量m_tab。
4. 选择“视图资源”窗口,右击“Dialog”选择“插入Dialog”插入三个对话框,ID号分别为IDD_DIALOG1,IDD_DIALOG2,IDD_DIALOG3,修改对话框属性的Style为Child,Border属性为None,用ClassWizard为这三个对话框生成新的类,基类为Cdialog,类名分别为Cdlg1,Cdlg2,Cdlg3。
5. 在主对话框类的头文件中添加上面生成的三个类头文件Cdlg1.h,Cdlg2.h,Cdlg3.h
类定义中,然后在主对话框类中添加三个变量,Cdlg1 dlg1;Cdlg2 dlg2;Cdlg3
dlg4;
6、在主对话框的OnInitDialog()函数里添加下面的代码 :
// TODO: Add extra initialization here
//给Tab Control控件添加3个选项
m_tab.InsertItem(0," 发卡机 ");
m_tab.InsertItem(1,"收卡机");
m_tab.InsertItem(2,"LED显示屏");
//创建三个子窗口
dlg1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1)); //IDC_TAB1为放置的Tab
Control控件的ID
dlg2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
dlg3.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1));
//设置子窗体在m_tab控件范围内
CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=5;
rect.left+=5;
rect.right-=5;
dlg1.MoveWindow(&rect);
dlg2.MoveWindow(&rect);
dlg3.MoveWindow(&rect);
//让子窗体1显示出来
dlg1.ShowWindow(TRUE);
//设置Tab Control控件默认选择第0项
m_tab.SetCurSel(0);
7. 双击Tab Control控件并在响应函数里添加下面的代码。
void CTest_1Dlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
Cdlg_1.ShowWindow(TRUE);
Cdlg_2.ShowWindow(FALSE);
Cdlg_3.ShowWindow(FALSE);
break;
case 1:
Cdlg_1.ShowWindow(FALSE);
Cdlg_2.ShowWindow(TRUE);
Cdlg_3.ShowWindow(FALSE);
break;
case 2:
Cdlg_1.ShowWindow(FALSE);
Cdlg_2.ShowWindow(FALSE);
Cdlg_3.ShowWindow(TRUE);
break;
default:;
}
*pResult = 0;
}
8. 最后效果如下。
具体步骤如下:
1. 打开VS,用向导新建一个基于对话框的MFC应用程序。
2. 将默认的窗口上的两按钮和一个静态文本删掉(当然该步骤不是必须的,想留着也可以)。
3. 在窗口上拖一个Tab Control控件,大小位置自己定,右击开控件选择“添加变量”,添加一个control类型的变量m_tab。
4. 选择“视图资源”窗口,右击“Dialog”选择“插入Dialog”插入三个对话框,ID号分别为IDD_DIALOG1,IDD_DIALOG2,IDD_DIALOG3,修改对话框属性的Style为Child,Border属性为None,用ClassWizard为这三个对话框生成新的类,基类为Cdialog,类名分别为Cdlg1,Cdlg2,Cdlg3。
5. 在主对话框类的头文件中添加上面生成的三个类头文件Cdlg1.h,Cdlg2.h,Cdlg3.h
类定义中,然后在主对话框类中添加三个变量,Cdlg1 dlg1;Cdlg2 dlg2;Cdlg3
dlg4;
6、在主对话框的OnInitDialog()函数里添加下面的代码 :
// TODO: Add extra initialization here
//给Tab Control控件添加3个选项
m_tab.InsertItem(0," 发卡机 ");
m_tab.InsertItem(1,"收卡机");
m_tab.InsertItem(2,"LED显示屏");
//创建三个子窗口
dlg1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1)); //IDC_TAB1为放置的Tab
Control控件的ID
dlg2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
dlg3.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1));
//设置子窗体在m_tab控件范围内
CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=5;
rect.left+=5;
rect.right-=5;
dlg1.MoveWindow(&rect);
dlg2.MoveWindow(&rect);
dlg3.MoveWindow(&rect);
//让子窗体1显示出来
dlg1.ShowWindow(TRUE);
//设置Tab Control控件默认选择第0项
m_tab.SetCurSel(0);
7. 双击Tab Control控件并在响应函数里添加下面的代码。
void CTest_1Dlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
Cdlg_1.ShowWindow(TRUE);
Cdlg_2.ShowWindow(FALSE);
Cdlg_3.ShowWindow(FALSE);
break;
case 1:
Cdlg_1.ShowWindow(FALSE);
Cdlg_2.ShowWindow(TRUE);
Cdlg_3.ShowWindow(FALSE);
break;
case 2:
Cdlg_1.ShowWindow(FALSE);
Cdlg_2.ShowWindow(FALSE);
Cdlg_3.ShowWindow(TRUE);
break;
default:;
}
*pResult = 0;
}
8. 最后效果如下。
相关文章推荐
- wpf利用后台生成grid表格以及tabcontrol,border等用法
- TabControl多页面窗体用法(vb2010)
- VC中Tab control控件的用法详细解析
- VC中Tab control的用法
- Vc tab control 的用法,
- VC++ Tab Control控件的基本用法
- TabControl的用法步骤详解
- VC中Tab control的用法
- MFC中TabControl控件用法
- VS2013/MFC编程入门之三十一(常用控件:标签控件Tab Control )
- MFC PropertySheet 和 TabControl 各自用法
- Tab Control用法
- Winform动态加载TabControl用法实例
- Delphi pagecontrol和tabcontrol用法示例
- MFC Tab Control 的用法
- WPF之TabControl控件用法
- VSTab Control控件的使用
- VS2015 tabcontrol 横向排列
- VS2012 C# 隐藏/显视 tabControl 中的 TabPages 页
- C++ MFC Tab Control 控件的一些用法