我想在CTabCtrl中插入一个对话框,
在 .h 文件中定义了一个该对话框的一个指针: CPay1Dlg *m_dlgPay1;在OnInitialUpdate()中有如下代码: m_dlgPay1=new CPay1Dlg;
m_dlgPay1->Create(IDD_DIALOG_PAY1,m_ExtData.GetSafeHwnd());但一编译,就报Create出错:error C2664: 'int __thiscall CDialog::Create(const char *,class CWnd *)' : cannot convert parameter 1 from 'const int' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style castCreate明明有两个重载函数的,为什么在这里它就偏只认一种呢?
在 .h 文件中定义了一个该对话框的一个指针: CPay1Dlg *m_dlgPay1;在OnInitialUpdate()中有如下代码: m_dlgPay1=new CPay1Dlg;
m_dlgPay1->Create(IDD_DIALOG_PAY1,m_ExtData.GetSafeHwnd());但一编译,就报Create出错:error C2664: 'int __thiscall CDialog::Create(const char *,class CWnd *)' : cannot convert parameter 1 from 'const int' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style castCreate明明有两个重载函数的,为什么在这里它就偏只认一种呢?
就算是那样,你也可以直接使用继承类函数
m_dlgPay1->Create(IDD_DIALOG_PAY1,this);
或
m_dlgPay1->Create(IDD_DIALOG_PAY1,NULL);顺便问一下,m_ExtData是什么东东?
改為:
m_dlgPay1->Create( UINT(IDD_DIALOG_PAY1) ,m_ExtData.GetSafeHwnd());
应该是一个整数才对,在resource.sh
不过为什么他不认就有点奇怪。
要MSDN查查看 。
const char *,
class CWnd * // 不是已经说明了吗?它是一个指向类的指针,而不是一个句柄类型!
)
而且他和CWND的Create方法也配不起来啊。
搞不懂啊。
m_dlgPay1->Create(IDD_DIALOG_PAY1,this);
只要去掉重载的create函数,一切ok了!