Для пользователя окно - это прямоугольная часть экрана. Каждая программа занимает свое окно или несколько окон. Одно окно обязательно - «главное окно приложения».
Для программиста окно - это объект, параметры которого описаны в структуре данных, а поведение - соответствующими функциями окна. Общение приложения с пользователем осуществляется через окно приложения. Приложение должно создать свое собственное окно, и через это окно приложение выводит информацию на экран и обрабатывает действия пользователя. Каждое окно имеет свой тип, размер, положение на экране дисплея, заголовок, меню, пиктограмму, курсор и т.д.
Для пользователя окно - рабочая область программы на экране. С точки зрения программиста, окно - это объект, который получает и обрабатывает сообщения. Если в MS-DOS для вывода сообщений на экран или принятия символов с клавиатуры не нужно выполнять никаких подготовительных действий (достаточно воспользоваться соответствующей функцией DOS или функцией стандартной библиотеки), то приложение Windows обязано сначала создать свое собственное окно, и, только через это окно,
программа может выводить информацию на экран и обрабатывать действия пользователя.
В Windows программный код служит только для описания поведения объекта. На первый план выступают данные, несущие информацию об объектах и осуществляющие обмен информацией между объектами.
Управляющие данные называют сообщениями. Все сообщения имеют единый формат. В Windows модель данных, управляющих объектами, реализуется при помощи механизма сообщений.
Механизм сообщений Windows заключается в том, что, если происходят события, относящиеся к приложению, то приложение получает соответствующее сообщение, которое оно может распознать и выполнить в ответ на него определенные действия.
Каждое приложение состоит из нескольких объектов-«окон», поэтому сообщения направляются вначале в очередь приложения, а затем поступают соответствующему объекту-«окну». Посредством сообщения окно получает информацию о всех событиях в системе Windows, касающихся данного окна. Все внешние по отношению к приложению события кодируются и в виде сообщений направляются в очередь приложения.
Сообщения, которые получает объект-«окно», возникают в результате действия пользователя, которые он выполняет при работе с приложением. Например, объект-«окно» приложения может получать сообщения о нажатии или отпускании клавиш клавиатуры или кнопок мыши. Так при нажатии клавиши приложение получает сообщение WM_KEYDOWN, а при нажатии левой кнопки мыши - сообщение WM_LBUTTONDOWN.
Сообщения приложение может получать и непосредственно от Windows. Например, приход сигнала от таймера кодируется сообщением WM_TIMER, или если пользователь изменил размер области окна приложения на дисплее, то Windows посылает приложению сообщение WM_PAINT, которое говорит о том, что нужно перерисовать область окна и т.п.
Наконец приложение может направлять сообщения самому себе.
Если обычная программа под MS-DOS получает управление при загрузке и передает его системе только по завершении работы, то приложение Windows - это определенная совокупность реакций на внешние события, это - объект, обрабатывающий информацию, более пассивный, чем программа MS-DOS.