求解"Dlg dlg=new Dlg(AfxGetMainWnd())"
我创建了一个对话框,类名为Dlg。之后通过"Dlg dlg=new Dlg(AfxGetMainWnd());"定义了一个全局变量dlg,然后通过在一个函数中添加下面的代码创建该对话框,这个程序能运行成功。
if(dlg)///如果对话框已生成
{
dlg.SetActiveWindow();///激活对话框
dlg.ShowWindow(SW_SHOW);///将对话框设置为可见
}
else
{
dlg.Create(IDD_DIALOG1); /////生成对话框
dlg.ShowWindow(SW_SHOW);///将对话框设置为可见
}
但是我对“Dlg dlg=new Dlg(AfxGetMainWnd());"始终挺困惑的:
"Dlg dlg“按理说应该是定义了对话框类Dlg的一个对象dlg,但"new Dlg(AfxGetMainWnd())"的返回值是一个指针,并且赋值给dlg,这样说的话dlg就应该是一个指针了,所以dlg到底是什么?
哪位可以帮满解决下,谢了!!!
[解决办法]
不是
Dlg * dlg=new Dlg(AfxGetMainWnd());
?
[解决办法]
如果你的Dlg不是指针的宏定义或者typedef。能编译过???
[解决办法]
如果Dlg没有宏定义或者typedef什么的,那么Dlg有一个从Dlg*的构造函数或者赋值操作符,以及从Dlg到bool的一个转换定义。