Система переправляет ввод данных оконной процедуре в форме сообщений (messages). Сообщения создаются и системой и прикладными программами. Система генерирует сообщение на каждое событие ввода - например, когда пользователь делает ввод с клавиатуры, перемещает мышь или щелкает мышью по органу управления типа линейки прокрутки. Система генерирует сообщения также в ответ на изменения в системе, вызванные прикладной программой, такие как, когда приложение заменяет пул системных ресурсов шрифта или изменяет размеры одного из его окон. Прикладная программа может создавать сообщения, которые предписывают своим собственным окнам исполнять задачи или связываться с окнами в других прикладных программах.
Система отправляет сообщение оконной процедуре с набором четырех параметров: дескриптор окна, код сообщения, и два значения называемые параметрами сообщения (message parameters). Дескриптор окна (window handle) идентифицирует окно, для которого предназначено сообщение. Система использует его, чтобы установить какая оконная процедура должна принять сообщение.
Код (идентификатор) сообщения (message identifier)
- именованная константа, которая идентифицирует цель сообщения. Когда оконная процедура принимает сообщение, она использует код сообщения, чтобы установить, как обработать его. Например, код сообщения WM_PAINT сообщает оконной процедуре, что рабочая область окна изменилась и должна быть перерисована.Параметры сообщения определяют данные или расположение данных, использованных оконной процедурой при обработке сообщения. Предназначение и значение параметров сообщения зависят от содержания сообщения. Параметр сообщения может содержать целое число, упакованные битовые флажки, указатель на структуру, содержащую дополнительные данные и так далее. Когда сообщение не использует параметры сообщения, они обычно устанавливаются в значение ПУСТО (NULL). Оконная процедура должна проверить код сообщения, чтобы установить, как интерпретировать параметры сообщения.