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

MFC如何实现对话框见的切换?,第1张

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那种单独一个对话框出来。

mf->SHOWWINDOW(SW_HIDE)应该要在DOMODAL之前吧,否则建立模态对话框后,整个主窗口将会"被断点",所以你下面的隐藏也达不到效果。

如果你这个BUTTON控件在主窗口DLG的cpp文件内的话,直接ShowWindow(SW_HIDE)就行了,不用获取指针然后指针调用什么的,因为遵循在谁哪执行,就被谁调用的原则。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11101709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存