改变形参的值(内容)
我写了如下的代码,想获取对话框中某个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)时,程序出错。