class="p0" style="margin-top: 0pt; margin-bottom: 0pt;">MFC中Tab控件可以使多个对话框有效地进行分页。
?
下面就来讲讲具体的步骤:
?
1.创建主对话框后,在对话框中加入Tab控件。假设控件ID为IDC_TAB1,并添加变量为m_Tab。
?
2.在资源中添加两个对话框资源(这里以分两页为例)。对话框属性设置中border为None,style设为child。ID定为IDD_PAGE1和IDD_PAGE2。再分别给两个对话框创建相应的类CPage1和CPage2。
?
3.在主对话框头文件中添加这两个对话框类的头文件。并定义CPage1?m_Page1;?CPage2?m_Page2;
?
4.在主对话框的初始化函数中添加如下代码:
m_tab.InsertItem(0,_T("第一页"));
m_tab.InsertItem(0,_T("第二页"));
m_Page1.Create(IDD_PAGE1,GetDlgItem(IDC_TAB1));
m_Page2.Create(IDD_PAGE2,GetDlgItem(IDC_TAB1));
//获得IDC_TAB1客户区大小
CRect?rs;
m_tab.GetClientRect(&rs);
rs.top+=40;
rs.bottom-=10;
rs.left+=10;
rs.right-=10;
//设置自对话框尺寸并移动到指定位置
m_Page1.MoveWindow(&rs);
m_Page2.MoveWindow(&rs);
//分别设置隐藏和显示
m_Page1.ShowWindow(true);
m_Page2.ShowWindow(false);
?
5.添加点击Tab分页事件处理程序:
void?CTestWinMobileDlg::OnTcnSelchangeTab1(NMHDR?*pNMHDR,?LRESULT?*pResult)
{
switch(m_tab.GetCurSel())
{
case?0:
m_Page1.ShowWindow(true);
m_Page2.ShowWindow(false);
case?1:
m_Page1.ShowWindow(false);
m_Page2.ShowWindow(true);
break;
default:
;
}
*pResult?=?0;
}