FAQ:WinAPI VCPP:закрыть приложение из дочернего окна

Материал из Весельчак У
Перейти к: навигация, поиск

Как из дочернего окна закрыть приложение?

Для этого нужно послать родительскому окну сообщение WM_CLOSE.

Через указатель на родительское окно:

pParent->PostMessage(WM_CLOSE);

При помощи хендла родительского окна:

::PostMessage(pParent->m_hWnd, WM_CLOSE, (WPARAM)0, (LPARAM)0);

Примечание: WM_CLOSE аналогично нажатию на крестик окна. То есть, это "мягкое" закрытие окна, так как это сообщение приложение может обработать по своему. Если же точно так же отправить сообщение WM_QUIT (при этом в wParam указывается значение, возвращаемое процессом после жавершения), то оконная процедура, получив это сообщение, просто прекращает работу и приложение закрывается сразу.