01.jpg

 

本范例使用的是Visual Studio 2015 - MFC Dialog架构.

Step 1.加入Tab Control元件

在MainDialog表单中加入Tab Control元件.

宣告变数:

CTabCtrl m_TabCtrl;

02.jpg

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;

 

创用 CC 授权条款
Microsoft Visual Studio - MFC Tab Control组织架构建立Peng Yi Hsing制作,以创用CC 姓名标示-非商业性-禁止改作 3.0 台湾 授权条款释出。

查看原文 >>
相关文章