Microsoft Visual Studio - MFC Tab Control组织架构建立
本范例使用的是Visual Studio 2015 - MFC Dialog架构.
Step 1.加入Tab Control元件
在MainDialog表单中加入Tab Control元件.
宣告变数:
CTabCtrl m_TabCtrl;
Step 2.建立Tab Control的标签
在MainDialog.cpp的OnInitDialog()里,插入标签
m_TabCtrl.InsertItem(0, _T("标签1"));
m_TabCtrl.InsertItem(1, _T("标签2"));
m_TabCtrl.InsertItem(2, _T("标签3"));
Step 3.建立3个Dialog
增加新的Dialog1,Dialog2,Dialog3, 并产生类别.
并且更改其属性
Border->无
Style->Child
Step 4.建立连结,设定及宣告
在MainDialog.h
#include "Dialog1.h"
#include "Dialog2.h"
#include "Dialog3.h"
宣告标签的Dialog
protected:
CDialog1 m_Dialog1;
CDialog2 m_Dialog2;
CDialog3 m_Dialog3;
然后在MainDialog.cpp onini里建立
CRect rect;
m_TabCtrl.GetClientRect(&rect);
m_Dialog1.Create(IDD_DIALOG1, &m_TabCtrl);
m_Dialog1.SetWindowPos(NULL, 5, 25, rect.Width() - 10, rect.Height() - 30, SWP_SHOWWINDOW | SWP_NOZORDER);
m_Dialog2.Create(IDD_DIALOG2, &m_TabCtrl);
m_Dialog2.SetWindowPos(NULL, 5, 25, rect.Width() - 10, rect.Height() - 30, SWP_SHOWWINDOW | SWP_NOZORDER);
m_Dialog3.Create(IDD_DIALOG3, &m_TabCtrl);
m_Dialog3.SetWindowPos(NULL, 5, 25, rect.Width() - 10, rect.Height() - 30, SWP_SHOWWINDOW | SWP_NOZORDER);
Step 5.切换标签并对应相对的Dialog
根据标签OnTcnSelchangeTab事件,来显示相对应的Dialog
void CWindowsDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此加入控制项告知处理常式程式码
*pResult = 0;
if (m_pwndShow != NULL)
{
m_pwndShow->ShowWindow(SW_HIDE);
}
int nIndex = m_TabCtrl.GetCurSel();
switch (nIndex)
{
case 0:
m_Dialog1.ShowWindow(SW_SHOW);
//m_Dialog2.ShowWindow(SW_HIDE);
//m_Dialog3.ShowWindow(SW_HIDE);
m_pwndShow = &m_Dialog1;
break;
case 1:
//m_Dialog1.ShowWindow(SW_HIDE);
m_Dialog2.ShowWindow(SW_SHOW);
//m_Dialog3.ShowWindow(SW_HIDE);
m_pwndShow = &m_Dialog2;
break;
case 2:
//m_Dialog1.ShowWindow(SW_HIDE);
//m_Dialog2.ShowWindow(SW_HIDE);
m_Dialog3.ShowWindow(SW_SHOW);
m_pwndShow = &m_Dialog3;
break;
}
}
Step 6.建立指标对应相对的Dialog
在MainDialog.h宣告CWnd 类别变数:
protected:
CWnd* m_pwndShow;
在MainDialog.cpp的OnInitDialog()里
m_Dialog1.Create(IDD_DIALOG1, &m_TabCtrl);后
设定指标m_pwndShow = &m_Dialog1;
m_Dialog2.Create(IDD_DIALOG2, &m_TabCtrl);后
设定指标m_pwndShow = &m_Dialog2;
m_Dialog3.Create(IDD_DIALOG3, &m_TabCtrl);后
设定指标m_pwndShow = &m_Dialog3;
Microsoft Visual Studio - MFC Tab Control组织架构建立由Peng Yi Hsing制作,以创用CC 姓名标示-非商业性-禁止改作 3.0 台湾 授权条款释出。