改变形参的值(内容),该怎么处理

改变形参的值(内容)我写了如下的代码,想获取对话框中某个item的hwnd,结果赋值出错。为何会失败?CDialog*Sho

改变形参的值(内容)
我写了如下的代码,想获取对话框中某个item的hwnd,结果赋值出错。为何会失败?
CDialog*     ShowCamera(HWND*   phwnd)
{
CDialog*   dialog   =   new   CDlgDiagnosis();

*phwnd   =   dialog-> GetDlgItem(IDC_CAMERA)-> m_hWnd;

return   dialog;
}

void   CDllDemoDlg::OnBnClickedCamera()
{
HWND   hwnd;
CDialog*   dlg   =   ShowCamera(&hwnd);
dlg-> DoModal();
}

[解决办法]
*phwnd = dialog-> GetDlgItem(IDC_CAMERA)-> m_hWnd;

HWND型转化为HWND*型?
[解决办法]
*phwnd = dialog-> GetDlgItem(IDC_CAMERA)-> m_hWnd;

的时候,那个对话框还没有创建出来呢

DoModal()以后再取试试?

[解决办法]
*phwnd = dialog-> GetDlgItem(IDC_CAMERA)-> m_hWnd;
这时你的Dialog没有Create,所以根本没有句柄(即dialog-> m_hWnd == 0),
所以在执行GetDlgItem(IDC_CAMERA)时,程序出错。