您的位置:首页 > 其它

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. 最后效果如下。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: