CDialog* pDlg = GetDlgItem(IDC_MY_DIALOG);m_pDialog = dynamic_cast<MyDialog*>(pDlg);不对
时间: 2024-03-26 20:35:18 浏览: 49
加载中Dialog
是的,你说的对,这个代码是有问题的。因为 GetDlgItem 会返回一个 CWnd 指针,而不是一个 CDialog 指针,因此在将其转换为 CDialog 指针时需要进行动态类型转换。
正确的代码应该是:
```
CWnd* pWnd = GetDlgItem(IDC_MY_DIALOG);
m_pDialog = dynamic_cast<MyDialog*>(pWnd);
```
这里的 IDC_MY_DIALOG 是对话框模板中对话框控件的 ID,MyDialog 是对话框类的名称,可以根据你的实际情况进行修改。
另外,需要注意的是,在进行动态类型转换时,需要确保指针指向的对象实际上是一个 MyDialog 类型的对象,否则转换会失败,导致 m_pDialog 指针为空。
阅读全文