MFC之对话框创建
INT_PTR CDialog::DoModal()
{
...
AfxHookWindowCreate(this);
if (CreateDlgIndirect(lpDialogTemplate,CWnd::FromHandle(hWndParent), hInst))
{
if (m_nFlags & WF_CONTINUEMODAL)
{
// enter modal loop
DWORD dwFlags = MLF_SHOWONIDLE;
if (GetStyle() & DS_NOIDLEMSG)
dwFlags |= MLF_NOIDLEMSG;
VERIFY(RunModalLoop(dwFlags) == m_nModalResult);
}
...
}
BOOL CWnd::CreateDlgIndirect(LPCDLGTEMPLATE lpDialogTemplate,
CWnd* pParentWnd, HINSTANCE hInst)
{
...
AfxHookWindowCreate(this);
hWnd = ::CreateDialogIndirect(hInst, lpDialogTemplate,
pParentWnd->GetSafeHwnd(), AfxDlgProc);
...
ASSERT(hWnd == m_hWnd);...
}
注意上面的代码是我从MFC类库里提取出来的。
我的问题是红色代码窗口创建后的变量hWnd和窗口对象成员变量m_hWnd会相等吗,为什么?
就是那行绿色代码,我不明白这是怎么回事?
请指教。