首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

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

热点排行