如何显示已隐藏的对话框!?????急哦!!!!!!!!

小尛憨 2013-04-07 07:59:17
有三个类,A B C
对应三个对话框D_A,D_B,D_C

D_A是主对话框,D_B是选择界面,D_C是运行界面

简而言之呢,就是通过D_A弹出D_B进行选择,再通过D_B弹出D_C运行并隐藏了D_B
运行后要返回D_B进行选择,要如何显示隐藏的D_B?

三个类的关系是

A{
B* B
}

B{
C* C
}

网上很多方法都试过了,基本上是说找到D_B的句柄showwindow,可是就是找不到,没用啊那些方法
GetParent()找到的是A
Finwindow()找不到
...全文
314 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
小尛憨 2013-04-08
  • 打赏
  • 举报
回复
引用 13 楼 zhoujielunzhimi 的回复:
引用 12 楼 fjlyjinbin 的回复:引用 9 楼 zhoujielunzhimi 的回复:A是一个Modal,B和C是一个NoModal 在B中new 和 create C之后,C->SaveB(B);显示B时,B->ShowWindow(SW_SHOW); C中保存B的m_hWnd或者B指针都行。 不过我还是想知道,怎样在C中定义B类型的指针呢?C是……
向前声明,学习了!
jimette 2013-04-08
  • 打赏
  • 举报
回复
A{ B* B } B{ C* C } A的主对话框的某个函数里(这个函数是响应b现实或者隐藏的)b.showwindow 在a的onitialdialog里面创建b 就好了!
Ginie 2013-04-08
  • 打赏
  • 举报
回复
妈呀,看着好累,你可以在D_C中申明D_B的指针对象,然后在其构造函数的时候传递进去保存,这样你就可以随时控制D_B的显示与隐藏了啊
信阳毛尖 2013-04-08
  • 打赏
  • 举报
回复
你在弹出D_C之前把D_B的窗口句柄传过去,结束是直接传这个句柄掉ShowWindow函数啊
oyljerry 2013-04-08
  • 打赏
  • 举报
回复
引用 12 楼 fjlyjinbin 的回复:
引用 9 楼 zhoujielunzhimi 的回复:A是一个Modal,B和C是一个NoModal 在B中new 和 create C之后,C->SaveB(B);显示B时,B->ShowWindow(SW_SHOW); C中保存B的m_hWnd或者B指针都行。 不过我还是想知道,怎样在C中定义B类型的指针呢?C是在B中new出来的,因为C中定义B* B的时候……
new的时候保存到一个成员变量指针
sumos 2013-04-08
  • 打赏
  • 举报
回复
引用 12 楼 fjlyjinbin 的回复:
引用 9 楼 zhoujielunzhimi 的回复:A是一个Modal,B和C是一个NoModal 在B中new 和 create C之后,C->SaveB(B);显示B时,B->ShowWindow(SW_SHOW); C中保存B的m_hWnd或者B指针都行。 不过我还是想知道,怎样在C中定义B类型的指针呢?C是在B中new出来的,因为C中定义B* B的时候……
前向声明: 在C头文件开始地方 class B; 在C类h中 private: B* b; //前向声明后只能定义指针 在C类的cpp中 #include "B.h" 然后就可以通过b使用B类的方法了
小尛憨 2013-04-08
  • 打赏
  • 举报
回复
引用 9 楼 zhoujielunzhimi 的回复:
A是一个Modal,B和C是一个NoModal 在B中new 和 create C之后,C->SaveB(B);显示B时,B->ShowWindow(SW_SHOW); C中保存B的m_hWnd或者B指针都行。
不过我还是想知道,怎样在C中定义B类型的指针呢?C是在B中new出来的,因为C中定义B* B的时候添加了B的头文件,C连B的头文件都加不了,怎么定义B类型的指针啊?
小尛憨 2013-04-08
  • 打赏
  • 举报
回复
引用 9 楼 zhoujielunzhimi 的回复:
A是一个Modal,B和C是一个NoModal 在B中new 和 create C之后,C->SaveB(B);显示B时,B->ShowWindow(SW_SHOW); C中保存B的m_hWnd或者B指针都行。
我在C里保存了B的hWnd,但是没法再C中定义B类型的指针,不过总算成功了,谢谢啦
  • 打赏
  • 举报
回复
隐藏的话就用showwindow(sw_hide);
sumos 2013-04-08
  • 打赏
  • 举报
回复
A是一个Modal,B和C是一个NoModal 在B中new 和 create C之后,C->SaveB(B);显示B时,B->ShowWindow(SW_SHOW); C中保存B的m_hWnd或者B指针都行。
小尛憨 2013-04-08
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
你累不累啊,还FindWindow。把D_B窗口实例对象作为成员变量记录下来,并在变量传递给D_C,可以在D_C中定义D_B的指针类型。D_C结束后,调用改变量的ShowWindow就行了
老师说的是,D_B是一个实例化对象啊,是在类A里new,create出的,怎么传递啊?而且D_C是类B里new,create出的一个对象,C应该是建立不了B对象的吧?这个指针如何定义啊?如何传递啊?
山伟 2013-04-08
  • 打赏
  • 举报
回复
1#说的很对,Findwindow太麻烦了。
向立天 2013-04-08
  • 打赏
  • 举报
回复
保有一个句柄就可以用ShowWindow来控制了
淡定的飘着 2013-04-08
  • 打赏
  • 举报
回复
1楼继续很威武,呵呵
gis_zmr 2013-04-08
  • 打赏
  • 举报
回复
D_B不是你控制的,如果是你控制的,你记录它的窗口句柄,需要的时候再SHOW不就行了。如果不是你控制的,那就用窗口遍历,遍历当前的所有顶层窗口,通过窗口标题找到该窗口,然后show。或者hook窗口消息
oyljerry 2013-04-07
  • 打赏
  • 举报
回复
FindWindow需要有唯一窗口标题或者类名 可以自己保存各个对话框的对象等,然后获取到句柄来ShowWindow控制
ZenoLin 2013-04-07
  • 打赏
  • 举报
回复
一样的想法,#1
快乐鹦鹉 2013-04-07
  • 打赏
  • 举报
回复
你累不累啊,还FindWindow。把D_B窗口实例对象作为成员变量记录下来,并在变量传递给D_C,可以在D_C中定义D_B的指针类型。D_C结束后,调用改变量的ShowWindow就行了

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧