Основы программирования в Win32API. Марапулец Ю.В. - 10 стр.

UptoLike

Составители: 

типов. Например, каждый раз при щелчке мышью в окне активной программы
посылается соответствующее сообщение. Другой тип сообщений посылается,
когда необходимо обновить содержимое активного окна. Сообщения посыла-
ются также при нажатии клавиши, если программа ожидает ввода с клавиату-
ры. Необходимо запомнить одно: по отношению к программе сообщения по-
являются случайным образом. Вот почему Windows-программы похожи на
программы обработки прерываний: невозможно предсказать, какое сообщение
появится в следующий момент.
Все Windows-программы начинают выполнение с вызова функции Win-
Main(). При традиционном методе программирования это нужно делать явно.
С использованием различных шаблонов (например, библиотеки MFC Visual
C++) такая необходимость отпадает, но функция все-таки существует.
Все Windows-программы должны содержать специальную функцию, ко-
торая не используется в самой программе, но вызывается самой операционной
системой. Эту функцию обычно называют функцией окна, или процедурой ок-
на. Она вызывается Windows, когда системе необходимо передать сообщение в
программу. Именно через нее осуществляется взаимодействие между про-
граммой и системой. Функция окна передает сообщение в своих аргументах.
Согласно терминологии Windows, функции, вызываемые системой, называют-
ся функциями обратного вызова. Таким образом, функция окна является
функцией обратного вызова. Помимо принятия сообщения от Windows функ-
ция окна должна вызывать выполнение действия, указанного в сообщении.
Конечно, программа не обязана отвечать на все сообщения, посылаемые Win-
dows. Поскольку их может быть сотни, то большинство сообщений обычно
обрабатывается самой системой, а программе достаточно поручить Windows
выполнить действия, предусмотренные по умолчанию.
Как объяснялось выше, Windows взаимодействует с программой, посылая
ей сообщения. Все приложения Windows должны организовать так называемый
цикл сообщенийобычно внутри функции WinMain(). В этом цикле каждое не-
обработанное сообщение должно быть извлечено из очереди сообщений данного
приложения и передано назад в Windows, которая затем вызывает функцию окна
программы с данным сообщением в качестве аргумента.
Каждое окно в Windows-приложении характеризуется определенными ат-
рибутами, называемыми классом окна. (Здесь понятие «класс» не идентично
используемому в С++. Оно скорее означает стиль или тип.) В традиционной
программе класс окна должен быть определен и зарегистрирован прежде, чем
будет создано окно. При регистрации необходимо сообщить Windows, какой
вид должно иметь окно и какую функцию оно выполняет. В то же время реги-
страция класса окна еще не означает создание самого окна. Для этого требует-
ся выполнить дополнительные действия.
Структура Windows-программ отличается от структуры программ других
типов. Это вызвано двумя обстоятельствами: во-первых, способом взаимодей-
ствия между программой и Windows, описанным выше; во-вторых, правилами,
которым следует подчиняться для создания стандартного интерфейса
10
типов. Например, каждый раз при щелчке мышью в окне активной программы
посылается соответствующее сообщение. Другой тип сообщений посылается,
когда необходимо обновить содержимое активного окна. Сообщения посыла-
ются также при нажатии клавиши, если программа ожидает ввода с клавиату-
ры. Необходимо запомнить одно: по отношению к программе сообщения по-
являются случайным образом. Вот почему Windows-программы похожи на
программы обработки прерываний: невозможно предсказать, какое сообщение
появится в следующий момент.
     Все Windows-программы начинают выполнение с вызова функции Win-
Main(). При традиционном методе программирования это нужно делать явно.
С использованием различных шаблонов (например, библиотеки MFC Visual
C++) такая необходимость отпадает, но функция все-таки существует.
     Все Windows-программы должны содержать специальную функцию, ко-
торая не используется в самой программе, но вызывается самой операционной
системой. Эту функцию обычно называют функцией окна, или процедурой ок-
на. Она вызывается Windows, когда системе необходимо передать сообщение в
программу. Именно через нее осуществляется взаимодействие между про-
граммой и системой. Функция окна передает сообщение в своих аргументах.
Согласно терминологии Windows, функции, вызываемые системой, называют-
ся функциями обратного вызова. Таким образом, функция окна является
функцией обратного вызова. Помимо принятия сообщения от Windows функ-
ция окна должна вызывать выполнение действия, указанного в сообщении.
Конечно, программа не обязана отвечать на все сообщения, посылаемые Win-
dows. Поскольку их может быть сотни, то большинство сообщений обычно
обрабатывается самой системой, а программе достаточно поручить Windows
выполнить действия, предусмотренные по умолчанию.
     Как объяснялось выше, Windows взаимодействует с программой, посылая
ей сообщения. Все приложения Windows должны организовать так называемый
цикл сообщений – обычно внутри функции WinMain(). В этом цикле каждое не-
обработанное сообщение должно быть извлечено из очереди сообщений данного
приложения и передано назад в Windows, которая затем вызывает функцию окна
программы с данным сообщением в качестве аргумента.
     Каждое окно в Windows-приложении характеризуется определенными ат-
рибутами, называемыми классом окна. (Здесь понятие «класс» не идентично
используемому в С++. Оно скорее означает стиль или тип.) В традиционной
программе класс окна должен быть определен и зарегистрирован прежде, чем
будет создано окно. При регистрации необходимо сообщить Windows, какой
вид должно иметь окно и какую функцию оно выполняет. В то же время реги-
страция класса окна еще не означает создание самого окна. Для этого требует-
ся выполнить дополнительные действия.
     Структура Windows-программ отличается от структуры программ других
типов. Это вызвано двумя обстоятельствами: во-первых, способом взаимодей-
ствия между программой и Windows, описанным выше; во-вторых, правилами,
которым следует подчиняться для создания стандартного интерфейса

                                    10