從前一篇波紋(關於Tab控件的使用)http://www.cnblogs.com/tupx/articles/3041040.html來的啟發,我可以自己定制“偽Tab”控件了~‘_’
All we need:主界面上一個可以作為比較位置的控件,即使只是一個STATIC控件。
流程:
1.建立一個基於Diglog的MFC工程Test4Mfc,在主界面上添加2個Button和1個Static控件。
2.建立另外2個對話框Dlg1、Dlg2,界面上只有一句話“Hello,this is Dlg 1.”/“Hello, this is Dlg 2.”
3.給Dlg1、Dlg2關聯2個類分別為CDlg1、CDlg2.
4.給Test4MfcDlg.h添加:#include "Dlg1.h" #include "Dlg2.h",並建立2個成員: CDlg1 m_dlg1;CDlg2 m_dlg2;
5.在Test4MfcDlg.cpp的OnInitDialog()中添加:
CRect rect; GetDlgItem(IDC_STATIC)->GetClientRect(&rect); rect.top+=10; m_dlg1.Create(IDD_DLG1,GetDlgItem(IDC_STATIC)); m_dlg2.Create(IDD_DLG2,GetDlgItem(IDC_STATIC)); m_dlg1.ShowWindow(true); m_dlg2.ShowWindow(false);
6.給2個按鈕添加事件:
void CTest4MfcDlg::OnBnClickedBtnDlg1()
{
m_dlg1.ShowWindow(true);
m_dlg2.ShowWindow(false);
}
void CTest4MfcDlg::OnBnClickedBtnDlg2()
{
m_dlg1.ShowWindow(false);
m_dlg2.ShowWindow(true);
}
效果如下:

圖1 點擊第一個選項卡后的效果

圖2 點擊第2個選項卡后的效果
關鍵的一點設置:Dlg1、Dlg2的對話框屬性設置:Style:Child;Border:None.
