永发信息网

如何动态创建一个模态对话框

答案:2  悬赏:50  手机版
解决时间 2021-02-06 10:27
  • 提问者网友:棒棒糖
  • 2021-02-05 19:28
如何动态创建一个模态对话框
最佳答案
  • 五星知识达人网友:野慌
  • 2021-02-05 19:59
首先你要在资源面板添加一个对话框,假设ID为IDD_DIALOG1,类为CTestDlg
则可以用指针的方式创建:
CTestDlg* dlg;
dlg = new CTestDlg;
dlg->Create(IDD_DIALOG1); //非模态对话框ID号
dlg->ShowWindow(SW_SHOW);

不过还是推荐把该对话框作为类成员变量或者全局变量,以避免内存泄露
全部回答
  • 1楼网友:神鬼未生
  • 2021-02-05 21:11
在mfc中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。这里解释模态对话框的创建。 模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。 点击模态对话框中的ok按钮,模态对话框会被销毁。 创建一个模态对话框的代码如下所示: //创建一个模态对话框 ctestdialog td; td.domodal();其中ctestdialog为我自己所新建的和一个对话框资源相关联的对话框类。 可以创建一个布局模态对话框类变量,不用担心它会随着所在函数返回而被销毁。因为domodal()函数的一个功能是,当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行。 domodal()函数也有显示对话框的功能,所以也无需调用其他函数来显示对话框。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯