我想在Tab Control中显示两个对话框,但是对话框显示在外面,不在Tab Control中
m_tab是Tab Control的成员变量,m_CurSelTab在构造函数中设为0
m_page1和m_page2是对话框类的两个成员变量
代码如下:
OnInitDialog()中
{
...
//为Tab Control增加两个页面
m_tab.InsertItem(0, _T("First"));
m_tab.InsertItem(1, _T("Second"));
//创建两个对话框
m_page1.Create(IDD_DIALOG1, &m_tab);
m_page2.Create(IDD_DIALOG2, &m_tab); //设定在Tab内显示的范围
CRect rc;
m_tab.GetClientRect(rc);
rc.top += 20;
rc.bottom -= 8;
rc.left += 8;
rc.right -= 8; m_page1.MoveWindow(&rc);
m_page2.MoveWindow(&rc);
//显示初始页面
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE); return TRUE;
}void CTabControlDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
if(m_CurSelTab)
{
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
}
else
{
m_page1.ShowWindow(SW_HIDE);
m_page2.ShowWindow(SW_SHOW);
}
m_CurSelTab = 1 - m_CurSelTab;
*pResult = 0;
}
m_tab是Tab Control的成员变量,m_CurSelTab在构造函数中设为0
m_page1和m_page2是对话框类的两个成员变量
代码如下:
OnInitDialog()中
{
...
//为Tab Control增加两个页面
m_tab.InsertItem(0, _T("First"));
m_tab.InsertItem(1, _T("Second"));
//创建两个对话框
m_page1.Create(IDD_DIALOG1, &m_tab);
m_page2.Create(IDD_DIALOG2, &m_tab); //设定在Tab内显示的范围
CRect rc;
m_tab.GetClientRect(rc);
rc.top += 20;
rc.bottom -= 8;
rc.left += 8;
rc.right -= 8; m_page1.MoveWindow(&rc);
m_page2.MoveWindow(&rc);
//显示初始页面
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE); return TRUE;
}void CTabControlDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
if(m_CurSelTab)
{
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
}
else
{
m_page1.ShowWindow(SW_HIDE);
m_page2.ShowWindow(SW_SHOW);
}
m_CurSelTab = 1 - m_CurSelTab;
*pResult = 0;
}
-----
不知如何理解
要设置成WS_CHILD呀!