主窗口关闭了,子窗口还存在???

时间:2021-09-24 23:50:08
我的程序有个线程不停监控当前设置的站点,当站点已断开,则关闭所有的设置页,等待用户的再次登陆。但有的设置是DoModal出来的对话,它的主窗口都关闭了,它还是存在的,结果当点击对话框的确定后就可能出错(一些信息已释放了)。
程序的对话框很多,有上百个。而且用到了BCG库。大家有啥好的简单的方法啊,消息或者有好的属性。当关闭窗口时,马上把在它上面的DoModal窗口也释放掉。

9 个解决方案

#1


关闭窗口得时候给DoModal窗口发个关闭得消息

#2


我想可能是你的父窗口只是关闭了,并没有销毁,所以子窗口还是存在的.试试用destroy()来销毁父窗口看看能不能达到你的要求.

#3


不可能的

#4


有这种事?搞点代码出来看哈子列

#5


代码量应该很大,而且不一定能找出来。

我也看到过别人遇到这种问题,但当时窗口比较少,做了个判断就把它Kill掉了。

二楼说的有可能,试试。

EnumChildWindows枚举出所有子窗口,然后把它们kill掉也可以。

#6


EnumChildWindows的时候,会把对话框上的控件来当做子窗口来释放的

#7


要结贴了,但还没答案啊!!自己顶下

#8


1.窗口之间关系确认是父子关系?
2.如xiajing0228() ( ) 说的

#9


DoModal本身就会销毁窗口
而非模态的要自己手动销毁

#1


关闭窗口得时候给DoModal窗口发个关闭得消息

#2


我想可能是你的父窗口只是关闭了,并没有销毁,所以子窗口还是存在的.试试用destroy()来销毁父窗口看看能不能达到你的要求.

#3


不可能的

#4


有这种事?搞点代码出来看哈子列

#5


代码量应该很大,而且不一定能找出来。

我也看到过别人遇到这种问题,但当时窗口比较少,做了个判断就把它Kill掉了。

二楼说的有可能,试试。

EnumChildWindows枚举出所有子窗口,然后把它们kill掉也可以。

#6


EnumChildWindows的时候,会把对话框上的控件来当做子窗口来释放的

#7


要结贴了,但还没答案啊!!自己顶下

#8


1.窗口之间关系确认是父子关系?
2.如xiajing0228() ( ) 说的

#9


DoModal本身就会销毁窗口
而非模态的要自己手动销毁