关于子对话框的问题,CDialog:Create的对话框怎么样初始化
无来 2006-10-16 03:50:12 在网上下载了一个向导对话框,但是发现创建对话框后,子对话框不能够被初始化。子对话框的构造函数没有被调用,OnInitDialog() 、OnCreate(LPCREATESTRUCT lpCreateStruct)、
Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
没有一个被调用的,怎么样初始化子对话框中的控件?
创建函数的原型如下:
void CWizard::AddPage(UINT nID)
{
struct PAGELINK* pTemp=pPageLink;
//插入新生成的结点
struct PAGELINK* pNewPage=new struct PAGELINK;
pNewPage->pDialog=new CDialog;
ASSERT(pNewPage->pDialog->Create(nID,this));
// Is window created
ASSERT(::IsWindow(pNewPage->pDialog->m_hWnd));
// 检查每页的样式
DWORD dwStyle = pNewPage->pDialog->GetStyle();
ASSERT((dwStyle & WS_CHILD) != 0); //子窗体
ASSERT((dwStyle & WS_BORDER) == 0); //无边界
//显示
pNewPage->pDialog->ShowWindow(SW_HIDE);
pNewPage->pDialog->MoveWindow(rectPage);
/*pNewPage->pDialog->SetWindowPos(&CWnd::wndTop,
rectPage.left,rectPage.top,
rectPage.Width(),rectPage.Height(),
SWP_NOMOVE);*/
pNewPage->Next=NULL;
pNewPage->nNum=++nPageCount; //计数器加1
if (pTemp)
{
while (pTemp->Next) pTemp=pTemp->Next; //移动链表末尾
pTemp->Next=pNewPage;
}
else
pPageLink=pNewPage; //若是第一个接点
}