建立一個基於對話方塊的MFC程式tabctrltest
第一步:
在程式主對話方塊中添加控制項,ID修改為IDM_tabList,添加控制項變數m_tablist;
第二步:
建立一個對話方塊,ID修改為IDM_dlgtab1,修改屬性styles->child;border->None;可以在上面添加些控制項,(自己布置)
然後建立類嚮導,繼承CDialog。類名為CDlgTab1;
第三步:
在程式主對話方塊類中添加CDlgTab1類的對象m_dlgtab1;
在OnInitDialog()函數中添加如下代碼:
//初始化m_tablist控制項
m_tablist.InsertItem(0,_T("第一頁")); //紅色部分為每一頁顯示的標題
//建立各屬性頁面
m_dlgtab1.Create(IDM_dlgtab1,&m_tablist);
//設定頁面的位置在m_tablist控制項範圍內
CRect rc;
m_tablist.GetClientRect(rc);
rc.top += 21;
rc.bottom -= 1;
rc.left += 1;
rc.right -= 1;
m_dlgtab1.MoveWindow(rc);
m_dlgtab1.ShowWindow(SW_SHOW);
上面僅僅是示範了建立一個屬性頁面的過程,也可以建立多個對話方塊,將他們綁定到tabctrl控制項中。但是,此時要為控制項添加OnTcnSelchangetablist(...)訊息響應處理函數。這個函數完成當我們切換頁面時,顯示相應的對話方塊。一般來說,這個函數的格式為
void CLASSNAME::OnTcnSelchangetablist(NMHDR *pNMHDR, LRESULT *pResult)
{
switch(m_tablist.GetCurSel())
{
case 0:
{
m_tab1Dlg.ShowWindow(SW_SHOW);
m_tab2Dlg.ShowWindow(SW_HIDE);
m_tab3Dlg.ShowWindow(SW_HIDE);
break;
}
case 1:
{
m_tab1Dlg.ShowWindow(SW_HIDE);
m_tab2Dlg.ShowWindow(SW_SHOW);
m_tab3Dlg.ShowWindow(SW_HIDE);
break;
}
case 2:
{
m_tab1Dlg.ShowWindow(SW_HIDE);
m_tab2Dlg.ShowWindow(SW_HIDE);
m_tab3Dlg.ShowWindow(SW_SHOW);
break;
}
。
。
。
default:
{}
}
*pResult = 0;
}
TabCtrl控制項的基本使用介紹到這。