关于关闭子窗口问题

mmfeng 2011-05-07 12:01:26
我有一个frmMainMDI窗口,当打开多个子窗口时,用下面的代码可关闭当前活动的子窗口:

if(frmMain->MDIChildCount>1)
{
if(frmMain->ActiveMDIChild->ClassName()=="TfrmMainControl" )
{
Close() ;
}
else
frmMain->ActiveMDIChild->Close();
}
else
Close();

然而问题来了:
当子窗口再打开一个普通窗口时,用上面的代码关掉了那个子窗口后,这个普通窗口却还存在。用什么方法可以关掉这个子窗口时,同时也把这个子窗口产生的窗口也关掉。
...全文
44 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmf41013 2011-05-08
  • 打赏
  • 举报
回复
子窗体的OnClose事件里判断普通窗口是否打开然后关闭它
开始领悟 2011-05-08
  • 打赏
  • 举报
回复
你那个新的子窗口是非模态的吧,你可以用代码维护,把本窗口打开的窗口在本窗口关闭时关闭掉
mmfeng 2011-05-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ice 的回复:]
你那个新的子窗口是非模态的吧,你可以用代码维护,把本窗口打开的窗口在本窗口关闭时关闭掉
[/Quote]
能具体些吗?
mmfeng 2011-05-07
  • 打赏
  • 举报
回复
我想在关掉当前这个活动的子窗口时,只关闭这个子窗口产生的,而不要影响到其他不是活动子窗口产生的其他普通窗口。

还没有人回答前,先用个笨方法顶住,在子窗口关闭窗口的函数用FindWindoW来查找自己生成的窗口,
HWND handle=NULL;
handle=::FindWindow(NULL,"Form3");
if(::IsWindow(handle))
{
ShowMessage("Form3已打开,现在一起关闭");
::DestroyWindow(handle);
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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