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