Как я могу закрыть дочернее окно, не закрывая родительское окно? - PullRequest
1 голос
/ 06 февраля 2012

У меня есть окно, которое имеет 5 дочерних окон. Как я могу закрыть дочернее окно, не закрывая родительское окно?

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

Предположительно у вас есть ручки для дочерних окон?Если это так, тогда просто используйте DestroyWindow.

EDIT:

Вы должны определить метод 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;
}
0 голосов
/ 27 ноября 2018

Это происходило со мной. Я добавил случай WM_DESTROY в процедуру окна, которую я зарегистрировал для своих дочерних окон. Это заставляло все мое приложение закрываться. После удаления все работало хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...