MFC如何实现对话框见的切换?
答案:5 悬赏:50 手机版
解决时间 2021-03-29 07:56
- 提问者网友:树红树绿
- 2021-03-28 14:58
MFC如何实现对话框见的切换?
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-03-28 16:19
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那种单独一个对话框出来。
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那种单独一个对话框出来。
全部回答
- 1楼网友:蓝房子
- 2021-03-28 19:05
定义按钮的点击事件,关闭当前Dialog,并打开Dialog2.
- 2楼网友:酒者煙囻
- 2021-03-28 18:39
隐藏会出现未知问题,建议不要使用!特别是多个页面、多次跳转时
建议使用:
CDialog::OnOk();
C**dlg dlg;
dlg.DoModal();
这样OnOk调用的EndDialog函数会设计一个flag,等此段响应函数执行完毕后关闭本对话框
建议使用:
CDialog::OnOk();
C**dlg dlg;
dlg.DoModal();
这样OnOk调用的EndDialog函数会设计一个flag,等此段响应函数执行完毕后关闭本对话框
- 3楼网友:舊物识亽
- 2021-03-28 17:01
我暂时保留我的看法!
- 4楼网友:等灯
- 2021-03-28 16:30
不能关闭父窗口,只能隐藏--在BUTTON响应函数添加
CXXDlg dlg;
ShowWindow(SW_HIDE);
dlg.DoModal();
ShowWindow(SW_SHOW);
CXXDlg dlg;
ShowWindow(SW_HIDE);
dlg.DoModal();
ShowWindow(SW_SHOW);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯