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

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

0

Решение

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

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

Другие решения

Просто используйте 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 );
0

По вопросам рекламы [email protected]