|
引用 3 楼 wswwxk 的回复:
_AFXWIN_INLINE BOOL CDialog::Create(UINT nIDTemplate, CWnd* pParentWnd)
{ return CDialog::Create(ATL_MAKEINTRESOURCE(nIDTemplate), pParentWnd); }
接收的参数不正确,导致的,怎么解决啊
/*ControllerDlg.cpp中初始化*/
m_sheet.AddPage(_T("界面1"), &m_Workpage1, IDD_DIALOG1);?m_Workpage1为对话框
m_sheet.AddPage(_T("界面2"), &m_Parameter2, IDD_DIALOG2);
m_sheet.AddPage(_T("界面3"), &m_SchoolPhase3, IDD_DIALOG3);
m_sheet.AddPage(_T("界面3"), &m_Warminpage4, IDD_DIALOG4);
m_sheet.Show();
/*TabSheet.cpp*/
BOOL CTabSheet::AddPage(LPCTSTR title, CDialog *pDialog,UINT ID)
{
if( MAXPAGE == m_nNumOfPages )
return FALSE;
//保存目前总的子对话框数
m_nNumOfPages++;
//记录子对话框的指针、资源ID、要在标签上显示的文字
m_pPages[m_nNumOfPages-1] = pDialog;
m_IDD[m_nNumOfPages-1] = ID;
m_Title[m_nNumOfPages-1] = title;
return TRUE;
}
void CTabSheet::Show()
{
//利用CDialog::Create来创建子对话框,并且使用CTabCtrl::InsertItem来加上相应的标签
for( int i=0; i < m_nNumOfPages; i++ )
{
m_pPages->Create( m_IDD, this );
InsertItem( i, m_Title );
}
//由于对话框显示时默认的是第一个标签被选中,所以应该让第一个子对话框显示,其他子对话框隐藏
m_pPages[0]->ShowWindow(SW_SHOW);
for( int i=1; i < m_nNumOfPages; i++)
m_pPages->ShowWindow(SW_HIDE);
SetRect();
}
发生异常时的callstack是什么?相关的变量的值是什么? |
|