如何动态创建一个模态对话框?
通过CDialog的Creat方法可以动态创建一个非模态的对话框。
我想动态在我需要的时候创建一个模态对话框该如何做?
问题点数:50、回复次数:14Top
1 楼abrams(F-15E StrikeEagle)回复于 2003-01-09 20:31:22 得分 0
DialogBox
DoModalTop
2 楼ZHANG9652(剑神独孤求败)回复于 2003-01-09 20:36:08 得分 0
domodalTop
3 楼wingjer(蒹葭)回复于 2003-01-09 20:39:55 得分 0
CDialog的Creat函数是这么说明的:
Call Create to create a modeless dialog box using a dialog-box template from a resource. You can put the call to Create inside the constructor or call it after the constructor is invoked.
他说了是创建一个modeless 对话框,用doModal函数看不到对话框.
Top
4 楼zzz1228(zyl)回复于 2003-01-09 20:40:59 得分 0
Domodal(),说说具体的情况啊Top
5 楼new1mm(牛一哞@引刀削愁)回复于 2003-01-09 20:44:27 得分 0
CXXXDlg dlg;
dlg.DoModal();
其中CXXXDlg是CDialog的派生类。Top
6 楼wingjer(蒹葭)回复于 2003-01-10 11:48:07 得分 0
下面的代码:
CXXXDlg dlg;
dlg.SetWindowText(strFunctionFullName);
dlg.DoModal();
一运行到第二行就出错,为什么?
Top
7 楼zzz1228(zyl)回复于 2003-01-22 09:34:20 得分 0
CXXXDlg dlg;
dlg.DoModal();
dlg.SetWindowText(strFunctionFullName);
换过来试试
Top
8 楼sinhighly(非典型程序员)回复于 2003-01-22 09:41:19 得分 0
upTop
9 楼hnyyy(前进)回复于 2003-01-22 09:45:31 得分 35
CXXXDlg dlg;
//dlg.SetWindowText(strFunctionFullName);//此时对话框尚不创建,不能使用这句
dlg.DoModal();
Top
10 楼zzz1228(zyl)回复于 2003-01-22 09:51:29 得分 0
哦,还是不行,你用dlg.SetWindowText(strFunctionFullName);是为了
改变标题栏,那怎么不在Dialog里面直接改呢
或者这样吧,
CXXXDlg *dlg = new CXXXDlg;
dlg->DoModal();
dlg->SetWindowText(strFunctionFullName);
Top
11 楼zzz1228(zyl)回复于 2003-01-22 09:56:50 得分 0
CAboutDlg *AboutDlg = new CAboutDlg();
AboutDlg->Create(IDD_ABOUTBOX,/*对话框ID*/ AfxGetApp()->m_pMainWnd);
AboutDlg->ShowWindow(SW_SHOW);
AboutDlg->SetWindowText("LLL");
这样就行了,Top
12 楼zzz1228(zyl)回复于 2003-01-22 09:57:53 得分 0
改正上面的Top
13 楼demonking(编魔)回复于 2003-01-22 09:58:42 得分 10
hnyyy(前进)说的是对的
正规的要改应该是在OnInitDialog() 中调用SetWindowText(strFunctionFullName);Top
14 楼andy_lau(天行键,君子当自强不息!)回复于 2003-01-22 10:03:36 得分 5
,嗯,在OnInitDialog() 中调用SetWindowText(strFunctionFullName);
调用
Top




