我需要编写一个程序,打开一个子对话框后,子对话框上的控件能正常工作,同时,母对话框(也就是主程序)上的控件同样正常工作?
但是我调用子程序的Domodal()函数以后,母对话框总是挂起的,我该怎么办?
不要用doModal,用create创建
//百度一下。。。
首先你要在资源面板添加一个对话框,假设ID为IDD_DIALOG1,类为CTestDlg
则可以用指针的方式创建:
CTestDlg* dlg;
dlg = new CTestDlg;
dlg->Create(IDD_DIALOG1); //非模态对话框ID号
dlg->ShowWindow(SW_SHOW);
可以去知乎上面或者github上面有
对话框分模态对话框(Modal)和非模态对话框,你说的那种对话框属于模态对话框,你创建一个非模态对话框好了(应该是创建窗口的时候设置某个参数,查一下API的说明文档)
Domodal创建的是模态对话框,创建非模态的对话框就可以两个对话框之间切换了
模态和非模态的区别是因为,模态框,将消息循环局部化,简单说,从一个大圈进入了一个小圈,可以认为是两个while循环的嵌套,按照你的想法,
你希望弹出的模态框在弹出窗口时,父模态框能活动,就很简单了,只要让你后面弹出的窗口,不是模态框就行。 简单说就是一个模态窗口弹出一个非模态的窗口。