【发布时间】:2012-02-06 19:31:28
【问题描述】:
我有一个有 5 个子窗口的窗口。如何在不关闭父窗口的情况下关闭子窗口?
【问题讨论】:
我有一个有 5 个子窗口的窗口。如何在不关闭父窗口的情况下关闭子窗口?
【问题讨论】:
大概你有子窗口的句柄?如果是这样,那么只需使用DestroyWindow。
编辑:
您应该在主“窗口”中定义一个 WndProc 方法来处理来自子窗口的回调。您可以使用它来定义要对每条消息执行的操作。在你的情况下,你想调用destroyWindow。
类似这样的:
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
【讨论】:
WM_CLOSE。致电DestroyWindow。您使用的是子窗口句柄,而不是我认为的父窗口句柄。
这发生在我身上。我在为我的子窗口注册的窗口过程中添加了一个案例WM_DESTROY。这导致我的整个应用程序退出。删除后,一切正常。
【讨论】: