永发信息网

MFC如何实现对话框见的切换?

答案:5  悬赏:50  手机版
解决时间 2021-03-29 07:56
MFC如何实现对话框见的切换?
最佳答案
1,新建对话框类ADlg,类BDlg,并且把属性设置为Child, border属性设置为None
  2,把ADlg类,BDlg类的生命周期设置为主对话框成员函数,或者静态,或者全局,反正不要弄成局部变量就行
  3,你可以在主对话框里面设置一个组合框 ID=IDC_Groupbox,为了的把它设置为新建对话框ADlg,BDlg的父窗口,新建对话框就在组合框上面了
  4,在主窗口启动或者其他位置添加以下代码建立子对话框:
  ADlg.Create(IDD_ADlg,GetDlgItem(IDC_Groupbox));
  ADlg.ShowWindow(SW_HIDE);
  BDlg.Create(IDD_BDlg,GetDlgItem(IDC_Groupbox));
  BDlg.ShowWindow(SW_HIDE);
  这样就建立上了,然后你直接用ShowWindow去控制两个对话框的显示和隐藏即可,比如在botton1里面做
  ADlg.ShowWindow(SW_SHOW);
  BDlg.ShowWindow(SW_HIDE);

  在botton2里面做
  ADlg.ShowWindow(SW_HIDE);
  BDlg.ShowWindow(SW_SHOW);

  这样就实现了啊 要在一个botton里面做 你在外面设置个标记,函数里面做判断也可以啊,这样A,B两个窗体就是显示在主窗口上的,而非domodle那种单独一个对话框出来。
全部回答
定义按钮的点击事件,关闭当前Dialog,并打开Dialog2.
隐藏会出现未知问题,建议不要使用!特别是多个页面、多次跳转时
建议使用:
CDialog::OnOk();
C**dlg dlg;
dlg.DoModal();
这样OnOk调用的EndDialog函数会设计一个flag,等此段响应函数执行完毕后关闭本对话框
我暂时保留我的看法!
不能关闭父窗口,只能隐藏--在BUTTON响应函数添加
CXXDlg dlg;
ShowWindow(SW_HIDE);
dlg.DoModal();
ShowWindow(SW_SHOW);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
买楼买单不买双是怎么回事?
what is kim and danny 这里可以用is吗?
LONGCHAMP的包包哪个颜色好
欧洲的什么沿岸出现了众多奴隶制城邦,被称为
汽车渴望公路,花草渴望雨露,灵魂渴望超度,
杨字开头的成语接龙
最终幻想10尤娜用打幸运值么? 顺便说一下改
小婉是是第几集知道凯文就是牛牛的
很多人都买吉利帝豪,但用起来却没那么好,这
哪家舞台技术搭建的更好?我们单位需要搭建舞
我有奥奇好号(谁想跟我换必须用赛尔换)
rfid与物联网的关系?
电视剧 《七十二家房客》中,有一集刘定坚(
90销售是隐形传销
达州晚辅有什么推荐吗?
推荐资讯
明新村地址好找么,我有些事要过去,
求unity 4.6.3 注册机
1954年的五分硬币,现在可以买多少
考研报考人数包括免试人数么
超级风刀原理是什么?
家人死亡领取丧葬费有哪些手续
已知x+x-1(的负一次方)=3求下列各式的值
若a 4倍根号3=m n倍根号3^2且abmn均为正整数
下列设备中,不是局域网必须的设备是。
40吨锅炉过热蒸汽是多少
河源有哪些快递?具体地址分别在哪里(不是能
言什么身什么的成语
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?