Программирование в среде Windows. Шаблон Windows-программ, страница 2

HWnd = THandle ;

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

Контекст устройства определен как

HDC = THandle ;

Помимо перечисленных выше ссылок, также используются ссылки на ряд других объектов. Могут использоваться ссылки на объекты интерфейса: меню (HMenu), иконки (HIcon) и курсоры (HCursor). Кроме того, могут использоваться ссылки на различные средства отображения: кисть (HBrush), шрифт (HFont), графическое изображение (HBitmap), область (HRgn), палитра (HPalette) и карандаш (HPen). Динамическое выделение памяти также осуществляется через ссылки. Ссылки используемые в Windows

Ссылка

Назначение

Ссылка

Назначение

HWnd

Ссылка на окно

HFont

Ссылка на шрифт

HDC

Ссылка на контекст

HBitmap

Ссылка на растровое изображение

HMenu

Ссылка на меню

HRgn

Ссылка на область

HIcon

Ссылка на иконку

HPalette

Ссылка на палитру

HCursor

Ссылка на курсор

HPen

Ссылка на карандаш

HBrush

Ссылка на кисть

Сообщения.

Сообщение - термин, который очень часто используется при обсуждении программирования в среде Windows.

Сообщение - это реакция ядра Windows на какое-либо событие типа перемещения манипулятора "мышь", нажатия клавишь на клавиатуре или изменения данных системного таймера.

В среде Windows поддерживается очередь сообщений, для обработки которой создается специальный цикл обработки сообщений.

Шаблон Windows программы.

Практически каждая Windows-программа состоит из ряда обязательных частей:

1.  Функции WinMain - являющейся точкой входа в программу. (Для Паскаля это то, что находится между BEGIN ... END. головной программы.)

2.  Создание и описание атрибутов класса окна.

3.  Создание экземпляра окна данного класса.

4.  Цикл обработки сообщений.

5.  Оконной функции, обрабатывающей сообщения.

Структура программы WinMin отражает структуру практически любой Windows-программы и может быть использована как отправная точка для создания более сложных программ.

При выполнении такой программы на экране появится окно, которое можно перемещать, изменять его размеры и, наконец, закрыть при помощи системного меню окна или программы управления задачами.

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

Windows-программа, как и обычная программа, состоит из трех частей:

Инициализация - регистрация класса окон, создание и отображение окна.

Выполнение - цикл обработки сообщений.

Завершение - закрытие окна и возврат в среду Windows.

Код программы WinMain.

{WinMin - пpоcтейшая -программа,

 использующая вызовы Windows API

--------------- -------------------------------}

PROGRAM WinMin;

USES WinTypes,WinProcs;

CONST

AppName='WinMin';

     {Оконная функция}

FUNCTION WindowProc(Window:HWnd; Message,WParam:Word; LParam:LongInt):LongInt; export;

Begin

WindowProc:=0;

case Message of

{Обpаботка сообщений}

wm_Destroy:

begin

PostQuitMessage(0);

Exit;

end;

end;

WindowProc:=DefWindowProc(Window, Message, WParam, LParam);

End;

{Точка входа в пpогpамму}

PROCEDURE WinMain;

Var

Window:HWnd;

Message:TMsg;

{Описание класса}

WindowClass:TWndClass;

Begin

{Только для пеpвого экземпляpа пpогpаммы}

if HPrevInst=0 then

                                  {Опpеделение атpибутов класса окна}

begin

WindowClass.Style:=cs_HRedraw OR cs_VRedraw;

WindowClass.lpfnWndProc:=@WindowProc;

WindowClass.cbClsExtra:=0;

WindowClass.cbWndExtra:=0;

WindowClass.hInstance:=HInstance;

WindowClass.hIcon:=LoadIcon(0,idi_Application);