新手学习MFC程序中,想创建一个对话窗模板,Crate时m_hWnd一直为0,很迷惑
在一个用户类中包含一个CUserDialog类的指针pUserDig,创建窗体的代码如下:pUserDlg=newCUserDialog(NULL);pUserDlg=C...
在一个用户类中包含一个CUserDialog类的指针pUserDig,创建窗体的代码如下:
pUserDlg=new CUserDialog(NULL);
pUserDlg=Create(IDD_USER_DIALOG);
pUserDlg->ShowWindow(SW_SHOW);
在程序运行到最后一句,显示pUserDlg->m_hWnd=0X00000000,不知道怎么回事,求高人指点?
ps:IDD_USER_DIALOG是对话窗模板编号。当模板上只有两个EDIT控件时没问题,在加上一个Button控件也没问题,可是删除Button,换成一个RichEdit控件时,就有问题了,删除问题如上所述。 展开
pUserDlg=new CUserDialog(NULL);
pUserDlg=Create(IDD_USER_DIALOG);
pUserDlg->ShowWindow(SW_SHOW);
在程序运行到最后一句,显示pUserDlg->m_hWnd=0X00000000,不知道怎么回事,求高人指点?
ps:IDD_USER_DIALOG是对话窗模板编号。当模板上只有两个EDIT控件时没问题,在加上一个Button控件也没问题,可是删除Button,换成一个RichEdit控件时,就有问题了,删除问题如上所述。 展开
1个回答
展开全部
CUserDialog *pUserDlg;
pUserDlg=new CUserDialog(NULL);
pUserDlg->Create(IDD_USER_DIALOG,this);//要调用对话框类的create成员
pUserDlg->ShowWindow(SW_SHOW);
追问
调用了,上文中pUserDlg=Create(IDD_USER_DIALOG)写错了,我代码中是pUserDlg->Create(IDD_USER_DIALOG),后来改为
pUserDlg->Create(IDD_USER_DIALOG,NULL)和
pUserDlg->Create(IDD_USER_DIALOG,this)还是生成不对,生成的窗体句柄还是为0,会不会和内存有关?
追答
可能和CRichEdit有关,这个东西如果是VC6没打SP6补丁,是有BUG的,在对话框中会导致对话框创建失败。(解决办法:VC打补丁)
另外就是检查对话框代码是否有其它问题,造成对话框创建失败了,这个没有具体代码分析,不好说。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询