With WindowClass do begin




Style:= cs_HRedraw or cs_VRedraw; {Стиль окна класса: окно будет перерисовываться при изменении его горизонтальных и вертикальных размеров}

lpfnWndProc:= @WindowProc; {Указатель на оконную функцию, которая будет обрабатывать все сообщения, посылаемые окну}

cbClsExtra:= 0; {Выделенная память, используемая программой по своему усмотрению}

cbWndExtra:= 0; {Выделенная память, используемая программой по своему усмотрению}

hInstance:= 0; {Ссылка на экземпляр программы, используется ядром Windows для однозначного определения сегмента данных экземпляра программы}

hIcon:= LoadIcon (0, idi_Application); {Ссылка на иконку для окна, для отображения минимизированного окна, в данном случае – иконка, соответствующая приложению}

hCursor:= LoadCursor (0, idc_Arrow); {Ссылка на курсор, в данном случае – в виде стрелки}

hbrBackground:= GetStockObject (White_Brush); {Ссылка на шаблон заполнения фона для окна}

lpszMenuName:= ''; {Ссылка на строку с именем меню}

lpszClassName:= AppName; {Имя класса}

end;

{ Регистрация окна с заданными атрибутами. Параметр функции – структура типа TWndClass, содержащая атрибуты окон данного класса}

If RegisterClass (WindowClass) = 0 then

Halt (255); {Регистрация невозможна, завершение работы программы}

Window:= CreateWindow {Создает окно и возвращает ссылку на окно типа HWnd}

(AppName, {Имя класса, к которому принадлежит создаваемое окно}

'Моя форма', {Заголовок окна}

ws_OverlappedWindow, {Стиль окна, в данном случае – комбинация стилей}

cw_UseDefault, {X – начальная позиция верхнего левого угла, в данном случае – значение по умолчанию}

cw_UseDefault, {Y – начальная позиция верхнего левого угла, в данном случае – значение по умолчанию}

800, {Width – начальная ширина окна, в данном случае – значение по умолчанию}

600, {Height – начальная ширина окна, в данном случае – значение по умолчанию}

0, {WndParent – родительское окно данного окна}

0, {Menu – меню, используемое данным окном}

HInstance, {Instance – указывает на экземпляр программы, этот параметр указывается, чтобы оконная функция имела доступ к сегменту данных программы}

nil); {Param – определяет дополнительную информацию, посылаемую через сообщение wm_Create}

{Окно создано, его необходимо отобразить на экране}

ShowWindow (Window, CmdShow); {Отображает или делает невидимым указанное окно}

UpdateWindow (Window); {Указывает прикладной программе, что часть окна нуждается в перерисовке}

{После того, как окно отбражено на экране, управление передаётся циклу обработки сообщений. GetMessage извлекает сообщения из очереди и помещается в структуру типа TMsg.Для всех сообщений, отличных от wm_Quit (завершение работы программы), эта функция возвращает ненулевое значение, и цикл продолжает обработку сообщений}

while GetMessage (Message, 0, 0, 0) do {GetMessage возвращает сообщение из очереди GetMessagePos}

Begin

{TranslateMessage передает структуру типа TMsg ядру Windows для преобразования сообщений о введенных символах}

TranslateMessage (Message); {Переводит сообщение виртуальных клавиш в символьное сообщение}

DispatchMessage (Message); {Передает сообщение оконной функции указанного окна}

{После того, как оконная функция обработала сообщение, управление возвращается в цикл обработки сообщений}

end; {конец цикла обработки сообщений}

Halt (Message.wParam); {Программа завершается}

End.

Контрольные вопросы:

Дайте определения событию и сообщению.

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

Сообщение – это уведомление о некотором произошедшем событии, на которое приложение отвечает определенным образом. Такое событие может быть инициировано пользователем путем нажатия клавиши, перемещения мыши, изменения размера окна или выбора команды из меню. В теле каждого приложения Windows имеется цикл обработки сообщений системы, который является ядром программы.

 

Перечислите основные действия, которые должно выполнять любое Windows-приложение.

 

Основные действия, которые может выполнять любое Windows-приложение:

- регистрация оконного класса;

- создание окна;

- отображение окна;

- обновление рабочей области окна;

- организация цикла обработки сообщений.

Цикл обработки сообщений включает:

- прием сообщения;

- трансляцию сообщения;

- диспетчирование сообщения.

Реакцию программы на поступающие сообщения описывает окон­ная функция, которая вызывается из диспетчера.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: