Это сообщение Windows посылает функции окна сразу же после закрытия окна. При получении его функция окна должна завершить свою работу и, если это функция главного окна приложения, обязательно послать в очередь приложения сообщение WM_QUIT.
Функция окна должна обработать сообщение WM_DESTROY следующим образом:
case WM_DESTROY: PostQuitMessage(NUUL);
break;
Функция PostQuitMessage() помещает сообщение WM_QUIT в очередь приложения. Когда функция GetMessage() извлечет это сообщение из очереди приложения, произойдет выход из цикла обработки сообщений и приложение совершит свою работу.
Функция окна получает сообщения из цикла обработки сообщений и от Windows. Из цикла обработки сообщений поступают сообщения ввода: перемещение и нажатие клавиш мыши (сообщения WM_MOUSEMOVE ,WM_LBUTTONDOWN и др.), нажатие и отпускание клавиш клавиатуры (WM_KEYDOWN и WM_ KEYUP) и, если установлен генератор событий таймера, сообщения от таймера (WM_TIMER).
Windows посылает функции окна сообщения поддержки окна напрямую, минуя очередь приложения и цикл обработки сообщений. Эти сообщения обычно вызваны событиями, требующими немедленной реакции по изменению вида окна, например, перерисовки изображения при изменении размеров окна пользователем или из-за взаимодействия с другими окнами. Эти сообщения могут служить также средством обмена информацией между Windows и приложением, сообщающим об изменении в среде Windows или о том, что Windows сделал с окном приложения. Типичными системными сообщениями окна являются, например, сообщения WM_CREATE, WM_DESTROY и WM_PAINT.
Если функция окна не обрабатывает сообщение, то необходимо передать управление функции DefWindowProc() и вернуть возвращенное ей значение.