WinAPI Создание другого окна после уничтожения предыдущего

0

Я знаю, как создавать дочерние окна. Но что делать, если я хочу создать одно окно (например, настроить параметры) и после его уничтожения - второй (на основе механизма HGE). Если бы я мог сломать цикл сообщений WM_DESTROY, я мог бы создать второе окно после этого цикла сообщений. Но поскольку я знаю, что GetMessage возвращает 0 только в сообщении WM_QUIT, и я не могу отправить это сообщение, потому что это означает: "Закройте приложение", а не "Закройте окно". Поэтому мой вопрос: как я могу разбить цикл сообщений, когда первое окно получает WM_DESTROY? Это действительно возможно?

  • 1
    Создайте диалоговое окно: msdn.microsoft.com/en-us/library/windows/desktop/…
  • 0
    Спасибо, диалоговое окно было лучшим решением :).
Теги:
winapi

2 ответа

2

Это довольно просто, и вы не должны пытаться вырваться из цикла сообщений.

  • Когда вы обрабатываете сообщение WM_CLOSE для первого окна, вызовите CreateWindow и т.д., Чтобы создать и показать второе окно.
  • Когда вы обрабатываете сообщение WM_DESTROY для второго окна, вызовите сообщение PostQuitMessage, чтобы завершить работу.
0

Просто используйте PostMessage.

#define WM_USER_CREATE_NEW_CHILD WM_USER + 1
void OnDestroy() // on destroy first child
{
PostMessage( parentWindow, WM_USER_CREATE_NEW_CHILD, 0, 0 );

Ещё вопросы

Сообщество Overcoder
Наверх
Меню