尝试在MDI父级之外提取MDI子窗口

时间:2010-09-27 11:02:16

标签: winapi mfc mdi

我已经能够使用以下代码将mdichild窗口重新显示到桌面:

SetParent(hSeekedWindow,0);
SetWindowLong(hSeekedWindow,GWL_STYLE,WS_OVERLAPPED|WS_VISIBLE|WS_CAPTION|WS_MAXIMIZEBOX|    WS_MINIMIZEBOX|WS_THICKFRAME|WS_SIZEBOX);
SetWindowLong(hSeekedWindow,GWL_EXSTYLE,WS_EX_CLIENTEDGE);

但是,只要我尝试调整前子窗口的大小,整个应用程序就会崩溃。我想这是因为exchild不再收到它的消息了。我的问题是:如果我以某种方式创建了一个将其消息转发给exchild的不可见的mdichild,我是否能够完成这项工作?

1 个答案:

答案 0 :(得分:1)

是的,那不健康。以与Windows Forms相同的方式执行此操作,只需重新创建窗口,现在减去WS_EX_MDICHILD样式标志。摧毁旧的。是的,你会得到一点闪烁。只需给这个新窗口提供相同的窗口过程,就可以充分利用现有代码。