读书人

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

发布时间: 2012-01-20 18:53:53 作者: rapoo

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

读书人网 >VC/MFC

热点推荐