Как правило, оконная процедура для "основного" класса окна будет вызывать PostQuitMessage в ответ на сообщение WM_DESTROY.
Я бы предпочел, чтобы основной поток решал, когда он хочет завершить, основываясь на сроке службы окна, которое он создает. Таким образом, любой класс окна, который я выберу в качестве главного окна, может иметь общую оконную процедуру, в которой нет PostQuitMessage.
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
if(msg.hwnd == hWnd && msg.message == WM_DESTROY)
{
PostQuitMessage(0);
}
}
Выше приведена моя попытка, но сообщение WM_DESTROY никогда не отправляется в очередь сообщений, похоже, оно является внутренним для оконной процедуры.
Есть ли способ сделать это?