建立选项卡控件不是简单的将选项卡控件拖置MFC面板就可以的,每个选项页我们必须建立一个对应的对话框资源,主要分为以下几个步骤
1、建立一个主对话框
2、放置CTabCtrl控件,类向导中关联变量名为m_Tab。要做一个具有四个选项页的选项卡,所以对应建立对应四个对话框资源,style属性设为Child,None,用ClassWizard生成新的类,基类为Cdialog,分别为Cpage0,Cpage1,Cpage2,ID号分别为 IDD_DIALOG1,IDD_DIALOG2,IDD_DIALOG3,IDD_DIALOG4。在主对话框中加入对应的四个对话框控件变 量,Cpage0 page0;Cpage1 page1;Cpage2 page2,Cpage3 page3。注意在主对话框的头文件中要加 入#include "page0.h",#include "page1.h",#include "page2.h,#include "page3.h"
下面的3-5步,在主对话框的OnInitDialog()中添加
3、初始化m_Tab控件
m_Tab.InsertItem(0," 第一页");
m_Tab.InsertItem(1," 第二页");
m_Tab.InsertItem(2," 第三页");
m_Tab.InsertItem(3," 第四页");
4、 建立属性页各页
page0.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page1.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1));
page3.Create(IDD_DIALOG4,GetDlgItem(IDC_TAB1));
5、 设置页面的位置在m_Tab控件范围内
CRect rect;
m_Tab.GetClientRect(&rect);
rect.top+=4; //如果是横的选项卡,要在这个地方腾出选项页的标签,+20即可
rect.bottom-=4;
rect.left+=20; //因为是竖的选项卡,所以这个地方为了腾出选项页的标签,逻辑坐标默认向下为正,向右为正
rect.right-=4;
page0.MoveWindow(&rect);
page1.MoveWindow(&rect);
page2.MoveWindow(&rect);
page3.MoveWindow(&rect);
page0.ShowWindow(TRUE); //设置默认显示的选项卡页面
m_Tab.SetCurSel(0);
6、主对话框中双击选项卡标签增加OnSelchangeTab1()响应函数:
int CurSel;
CurSel=m_Tab.GetCurSel();
switch(CurSel)
{
case 0:
page0.ShowWindow(TRUE);
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
page3.ShowWindow(FALSE);
break;
case 1:
page0.ShowWindow(FALSE);
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
page3.ShowWindow(FALSE);
break;
case 2:
page0.ShowWindow(FALSE);
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
page3.ShowWindow(FALSE);
break;
case 3:
page0.ShowWindow(FALSE);
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
page3.ShowWindow(TRUE);
break;
default: ;
}
此外还有个方法。论坛上的http://topic.csdn.net/t/20060110/17/4508606.html