FAQ:WinAPI VCPP:закрыть приложение из дочернего окна
Материал из Весельчак У
Версия от 15:16, 3 октября 2009; RXL (обсуждение | вклад) (Новая: ===Как из дочернего окна закрыть приложение?=== Для этого нужно послать родительскому окну сообщение WM_...)
Как из дочернего окна закрыть приложение?
Для этого нужно послать родительскому окну сообщение WM_CLOSE.
Через указатель на родительское окно:
pParent->PostMessage(WM_CLOSE);
При помощи хендла родительского окна:
::PostMessage(pParent->m_hWnd, WM_CLOSE, (WPARAM)0, (LPARAM)0);
Примечание: WM_CLOSE аналогично нажатию на крестик окна. То есть, это "мягкое" закрытие окна, так как это сообщение приложение может обработать по своему. Если же точно так же отправить сообщение WM_QUIT (при этом в wParam указывается значение, возвращаемое процессом после жавершения), то оконная процедура, получив это сообщение, просто прекращает работу и приложение закрывается сразу.