先贴上我的代码BOOL CMaindlg::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO: Add extra initialization here m_setTab.InsertItem(0,_T("设置1"));
m_setTab.InsertItem(1,_T("设置2"));
m_setTab.InsertItem(2,_T("设置3"));
m_backCityDlg.Create(IDD_BACKCTIYDLG,GetDlgItem(IDC_SETTAB));
m_scriptDlg.Create(IDD_SCRIPTSETDLG,GetDlgItem(IDC_SETTAB));
m_skillDlg.Create(IDD_SKILLDLG,GetDlgItem(IDC_SETTAB));
// 将子窗口显示在m_Tab范围内
CRect rs;
m_setTab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4;
m_scriptDlg.MoveWindow(rs);
m_skillDlg.MoveWindow(rs);
m_backCityDlg.MoveWindow(rs);
// 默认显示第一个子窗口
m_setTab.SetCurSel(0);
//m_backCityDlg.ShowWindow(TRUE); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMaindlg::OnTcnSelchangeSettab(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
int nCurSel = m_setTab.GetCurSel(); switch(nCurSel)
{
case 0: // 显示子窗口1
m_backCityDlg.ShowWindow(TRUE);
m_scriptDlg.ShowWindow(FALSE);
m_skillDlg.ShowWindow(FALSE);
break;
case 1: // 显示子窗口2
m_scriptDlg.ShowWindow(TRUE);
m_backCityDlg.ShowWindow(FALSE);
m_skillDlg.ShowWindow(FALSE);
break;
case 2: //显示窗口3
m_skillDlg.ShowWindow(TRUE);
m_backCityDlg.ShowWindow(FALSE);
m_scriptDlg.ShowWindow(FALSE);
break;
}
*pResult = 0;
}
分页窗体是通过点击按钮创建的void CWitchCraftProDlg::OnBnClickedSetingbtn()
{
// TODO: Add your control notification handler code here
m_cMainDlg = new CMaindlg();
m_cMainDlg->Create(CMaindlg::IDD,this);
m_cMainDlg->ShowWindow(SW_SHOW);
}
以前都是这么用的,但是不知道为什么突然不能分页了,窗体出来后就死了,无法移动无法实现分页
{
CDialog::OnInitDialog(); // TODO: Add extra initialization here m_setTab.InsertItem(0,_T("设置1"));
m_setTab.InsertItem(1,_T("设置2"));
m_setTab.InsertItem(2,_T("设置3"));
m_backCityDlg.Create(IDD_BACKCTIYDLG,GetDlgItem(IDC_SETTAB));
m_scriptDlg.Create(IDD_SCRIPTSETDLG,GetDlgItem(IDC_SETTAB));
m_skillDlg.Create(IDD_SKILLDLG,GetDlgItem(IDC_SETTAB));
// 将子窗口显示在m_Tab范围内
CRect rs;
m_setTab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4;
m_scriptDlg.MoveWindow(rs);
m_skillDlg.MoveWindow(rs);
m_backCityDlg.MoveWindow(rs);
// 默认显示第一个子窗口
m_setTab.SetCurSel(0);
//m_backCityDlg.ShowWindow(TRUE); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMaindlg::OnTcnSelchangeSettab(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
int nCurSel = m_setTab.GetCurSel(); switch(nCurSel)
{
case 0: // 显示子窗口1
m_backCityDlg.ShowWindow(TRUE);
m_scriptDlg.ShowWindow(FALSE);
m_skillDlg.ShowWindow(FALSE);
break;
case 1: // 显示子窗口2
m_scriptDlg.ShowWindow(TRUE);
m_backCityDlg.ShowWindow(FALSE);
m_skillDlg.ShowWindow(FALSE);
break;
case 2: //显示窗口3
m_skillDlg.ShowWindow(TRUE);
m_backCityDlg.ShowWindow(FALSE);
m_scriptDlg.ShowWindow(FALSE);
break;
}
*pResult = 0;
}
分页窗体是通过点击按钮创建的void CWitchCraftProDlg::OnBnClickedSetingbtn()
{
// TODO: Add your control notification handler code here
m_cMainDlg = new CMaindlg();
m_cMainDlg->Create(CMaindlg::IDD,this);
m_cMainDlg->ShowWindow(SW_SHOW);
}
以前都是这么用的,但是不知道为什么突然不能分页了,窗体出来后就死了,无法移动无法实现分页
分页是能分页了,但是不是显示在cmainDlg窗体上面,脱离窗体了。。郁闷。
总是出现稀奇古怪的毛病
但是如果是在new出来的窗体上放着分页控件就不行了
不行的,说了如果主窗体上的tabctrl控件是可以的,如果tabctrl控件在一个new出来的窗体上位置就不对了。
border: none
BOOL CMaindlg::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO: Add extra initialization here m_setTab.InsertItem(0,_T("设置1"));
m_setTab.InsertItem(1,_T("设置2"));
m_setTab.InsertItem(2,_T("设置3"));
m_backCityDlg.Create(IDD_BACKCTIYDLG,this);
m_scriptDlg.Create(IDD_SCRIPTSETDLG,this);
m_skillDlg.Create(IDD_SKILLDLG,this);
// 将子窗口显示在m_Tab范围内
CRect rs;
m_setTab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4;
m_scriptDlg.MoveWindow(rs);
m_skillDlg.MoveWindow(rs);
m_backCityDlg.MoveWindow(rs);
m_scriptDlg.ShowWindow(SW_SHOW);
m_skillDlg.ShowWindow(SW_HIDE);
m_backCityDlg.ShowWindow(SW_HIDE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}