Шаг 60 - Сообщение WM_DESTROY

Это сообщение посылается когда необходимо уничтожить окно. После удалении его с экрана. Посылается сообщение сначала главному окну, а потом дочерним окнам. После принятия этого сообщения необходимо вызывать функцию PostQuitMessage(). Сообщение о разрушении окна поступит именно оконной процедуре, а не в стандартной очереди сообщения. Общий вид обработки этого сообщения такой:

case WM_DESTROY: 
	PostQuitMessage( 0 ); 
	break;
В ответ на это сообщение мы должны поместить в очередь сообщение WM_QUIT. Это и делает функция PostQuitMessage() посылая в очередь это сообщение и говоря, что процесс должен быть завершен.
VOID PostQuitMessage
( 
	int nExitCode		// код возврата
);

60.gif (1434 b)

Смотрите на рисунок. Сообщение WM_DESTROY поступает сразу в оконную процедуру. Теперь оконная процедура вызывает PostQuitMessage(), которая и помещает сообщение WM_QUIT в очередь сообщений. В последствии его отловит GetMessage() и программа прекратит работу. WM_QUIT может посылать только WinMain() и должна это делать. И Windows и Вы сами не должны посылать сообщение WM_QUIT. Это сделано для того, чтобы окно могло освободить все использованные им ресурсы.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 29.01.2001