求救!无模式对话框!急
请问创建无模式对话框是否只要两步:
第一步: dlg.Create(IDD_LOGIN_DIALOG,NULL);
第二步: dlg.ShowWindow(SW_SHOWMAXIMIZED);
但是好像只是第一步执行完后 屏幕闪了一下 就没有了 请问是为什么 多谢
问题点数:20、回复次数:8Top
1 楼handsomerun(毛毛)回复于 2006-03-03 09:50:17 得分 0
dlg是个局部变量吧
你在某个函数里调用上述代码的吗??
等你的函数执行完了,dlg的生存期也结束了
所以闪了一下就没有了,应该是这个原因吧Top
2 楼ydfivy(我就是一送外卖的)回复于 2006-03-03 09:52:45 得分 0
handsomerun(毛毛) 说的对.
估计是这个原因.dlg定义为类变量就好了.Top
3 楼lzzqqq(Jonersen)回复于 2006-03-03 09:56:36 得分 0
是的,执行完后就释放了.应该把dlg定义成类的员变量.Top
4 楼hxuanyu()回复于 2006-03-03 10:03:10 得分 0
好像不是 我新建了一个工程 加入了对话框类
在CLogInApp::InitInstance里面有
{
//.........
CLogInDlg dlg;
m_pMainWnd = &dlg;
dlg.Create(IDD_LOGIN_DLG,NULL);
dlg.show(SW_SHOWMAXIMIZED);
}
问题是就在Create运行后闪了一下,show的时候也闪了一下,但是f11到函数右括号时对话框就不见了阿Top
5 楼piaozhou_cd(漂舟)回复于 2006-03-03 10:11:14 得分 0
我认为:
方法一:
如为CLogInDlg为与对话框已经关联的类,则
{
CLogInDlg dlg;
m_pMainWnd = &dlg;
int nRet = dlg.DoModal();
// 可以判断返回值,来检测用户按哪个键退出的对话框
// 来做相应的操作
}
方法二:
{
CLogInDlg *dlg;
dlg = new CLogInDlg;
dlg->Create(IDD_LOGIN_DLG,NULL);
m_pMainWnd = dlg;
dlg.ShowWindow(SW_SHOW);
}
不知正确否?Top
6 楼Atomictry(天影)回复于 2006-03-03 10:19:31 得分 0
把CLogInDlg dlg;移到LogInApp.h中Top
7 楼weiyongzhao(好人)回复于 2006-03-03 10:28:32 得分 0
你这样试一试
1首先创建MFC程序
2然后添加对话框资源,IDD_DIALOG1
3建立对话框的类 CFeiModal
4载MainFrame.h中添加
#include "FeiModel.h"
public:
CFeiModel *feimodel; //创建指向CFeiModel类的指针
5设置菜单项,添加事件处理函数
6void CMainFrame::OnFeimodel()
{
feimodel=new CFeiModel(this);
feimodel->Create(IDD_DIALOG1);
feimodel->ShowWindow(SW_RESTORE);
}
Top
8 楼lonkil(www.vcfans.com)回复于 2006-03-03 10:34:16 得分 0
handsomerun(毛毛) --->正解
Top




