2013-10-07 36 views
0

我有以下代码,它在主对话框中工作,但不能在第二个(或第三个)对话框中工作。问题是我希望tab控件的每个页面都可以显示一个嵌入对话框,它类似于属性页面。在选项卡控件中的嵌入式对话框不能在第二个对话框中工作MFC

首先,我创建两个对话框IDD_DIALOG1IDD_DIALOG2。然后我将它们的样式更改为child并将边框更改为None。之后,我将CDialog分类添加到它们中的每一个。

在我MainDialog.h,我有以下代码:

#include "Dialog1.h" 
#include "Dialog2.h" 
... 
public: 
    CDialog1 m_para1; 
    CDialog2 m_para2; 
    CTabCtrl m_TabCtrl; 

在我MainDialog.cpp,我使用下面的代码嵌入在OnInitDialog对话框幷:

m_TabCtrl.InsertItem(0, _T("TAB1")); 
m_TabCtrl.InsertItem(1, _T("TAB2")); 
m_para1.Create(IDD_DIALOG1,GetDlgItem(IDD_MAINDIALOG)); 
m_para2.Create(IDD_DIALOG2,GetDlgItem(IDD_MAINDIALOG)); 

CRect rs; 
m_TabCtrl.GetClientRect(&rs); 

rs.top+=37; 
rs.bottom+=8; 
rs.left+=13; 
rs.right+=7; 

m_para1.MoveWindow(&rs); 
m_para2.MoveWindow(&rs); 

m_para1.ShowWindow(TRUE); 
m_para2.ShowWindow(FALSE); 


m_TabCtrl.SetCurSel(1); 

通过这种方式,它可以在这种情况下工作。但是如果我想在我的SecondDialog这个非主对话框中使用这种方法,它就无法工作。有人可以帮我吗?提前致谢。

回答

相关问题