从前一篇波纹(关于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.