smallboxes
smallboxes
2016-08-25 20:21
采纳率: 80%
浏览 3.0k
已采纳

MFC中的对话框可不可以两个对话框同时存在并且工作?

我需要编写一个程序,打开一个子对话框后,子对话框上的控件能正常工作,同时,母对话框(也就是主程序)上的控件同样正常工作?
但是我调用子程序的Domodal()函数以后,母对话框总是挂起的,我该怎么办?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • qq_27587417
    看得到你的人头 2016-08-26 00:56
    已采纳

    不要用doModal,用create创建
    //百度一下。。。
    首先你要在资源面板添加一个对话框,假设ID为IDD_DIALOG1,类为CTestDlg
    则可以用指针的方式创建:
    CTestDlg* dlg;
    dlg = new CTestDlg;
    dlg->Create(IDD_DIALOG1); //非模态对话框ID号
    dlg->ShowWindow(SW_SHOW);

    点赞 评论
  • AinUser
    AinUser 2016-08-26 00:25

    可以去知乎上面或者github上面有

    点赞 评论
  • hijack00
    hijack00 2016-08-26 00:39

    对话框分模态对话框(Modal)和非模态对话框,你说的那种对话框属于模态对话框,你创建一个非模态对话框好了(应该是创建窗口的时候设置某个参数,查一下API的说明文档)

    点赞 评论
  • lx624909677
    lx624909677 2016-08-26 01:34

    Domodal创建的是模态对话框,创建非模态的对话框就可以两个对话框之间切换了

    点赞 评论
  • weixin_35970616
    weixin_35970616 2016-08-26 03:12

    模态和非模态的区别是因为,模态框,将消息循环局部化,简单说,从一个大圈进入了一个小圈,可以认为是两个while循环的嵌套,按照你的想法,
    你希望弹出的模态框在弹出窗口时,父模态框能活动,就很简单了,只要让你后面弹出的窗口,不是模态框就行。 简单说就是一个模态窗口弹出一个非模态的窗口。

    点赞 评论

相关推荐