Я знаю, как создавать дочерние окна. Но что делать, если я хочу создать одно окно (например, настроить параметры) и после его уничтожения - второй (на основе механизма 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 );