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)就行了,不用获取指针然后指针调用什么的,因为遵循在谁哪执行,就被谁调用的原则。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)