1.插入三个对话框,ID为默认的IDD_DIALOG1、IDD_DIALOG2、IDD_DIALOG3。
设定对话框属性Border:None Style:Child (将没有工具栏等东东)
2.(通过快速创建)为其添加类,CDlg1、CDlg2、CDlg3
3.在主对话框的头文件中添加对三个对话框类头文件的引用
1 #include "Dlg1.h" 2 #include "Dlg2.h" 3 #include "Dlg3.h"
4.在主对话框中添加三个变量:(将类进行实例化)
1 Dlg1 m_dlg1; 2 3 Dlg2 m_dlg2; 4 5 Dlg3 m_dlg3;
5.主对话框中添加TabCtrl控件,ID为默认的IDC_TAB1,为其添加变量m_tab(通过快速创建“控件变量”);
6.在OnInitDialog()函数中添加初始化代码:
(1)插入分页项并创建对话框:
1 m_tab.InsertItem(0,TEXT("参数一")); //添加参数一选项卡 (类似于添加标题) 2 m_tab.InsertItem(1,TEXT("参数二")); //添加参数二选项卡 3 m_tab.InsertItem(2,TEXT("结果")); //添加结果选项卡 4 5 m_dlg1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1)); (将dialog与其绑定在一起) 6 m_dlg2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1)); 7 m_dlg3.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1));
2:移动对话框到页面位置 (为了防止添加的dialog盖住标签栏位,所以需要调整位置)
1 //获得IDC_TABTEST客户区大小 2 CRect rs; 3 m_tab.GetClientRect(&rs); 4 //调整子对话框在父窗口中的位置 5 rs.top += 20; (可以调整选项卡的大小(标题栏位)) 6 rs.bottom -= 4; 7 rs.left += 4; 8 rs.right -= 4; 9 10 //设置子对话框尺寸并移动到指定位置 11 m_dlg1.MoveWindow(&rs); 12 m_dlg2.MoveWindow(&rs); 13 m_dlg3.MoveWindow(&rs); 14
CFont * f; (可以设定选项卡中字体的大小) f = new CFont; f->CreateFont(36, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight TRUE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T("Arial")); // lpszFac // :: SetTextColor(HDC hDC,RGB(255,255,0)); //设置字体颜色 SysTabBianShu1.SetFont(f);
15 //分别设置隐藏和显示 16 m_dlg1.ShowWindow(true); 17 m_dlg2.ShowWindow(false); 18 m_dlg3.ShowWindow(false); 19 20 //设置默认的选项卡 21 m_tab.SetCurSel(0);
(3)为CTabCtrl控件添加消息响应事件:TCN_SELCHAGE
1 int CurSel = m_tab.GetCurSel(); 2 switch(CurSel) 3 { 4 case 0: 5 m_dlg1.ShowWindow(true); 6 m_dlg2.ShowWindow(false); 7 m_dlg3.ShowWindow(false); 8 break; 9 case 1: 10 m_dlg1.ShowWindow(false); 11 m_dlg2.ShowWindow(true); 12 m_dlg3.ShowWindow(false); 13 break; 14 case 2: 15 m_dlg1.ShowWindow(false); 16 m_dlg2.ShowWindow(false); 17 m_dlg3.ShowWindow(true); 18 break; 19 default: 20 ; 21 }