Оконная процедура

Параметры

BOOL TextOut(

LONG bottom

LONG right,

LONG top,

LONG left,

BOOL GetClientRect

BOOL GetWindowRect

(

HWND hWnd, // указатель на окно

LPRECT lpRect // указатель на структуру с координатами

);

Результат возвращается в единицах экрана (т.е. пикселах) относительно левого верхнего угла экрана. Если функция выполнена успешно, то она вернет ненулевое значение. Например, получить экранные координаты прямоугольника окна можно так:

RECT rc;

GetWindowRect(hwnd,&rc);


Для получения области клиента используется функция:

(

HWND hWnd, // указатель на окно

LPRECT lpRect // указатель на структуру с координатами

);

Координаты левого верхнего угла 0,0 так как результат возвращается относительно клиентской области. То есть, прямоугольник смещён в левый верхний угол окна (rc.left=rc.top=0), а значения полей right и bottom равны соответственно ширине и высоте рабочей области.

Структура, в которую можно записать координаты окна имеет следующий вид:

typedef struct tag_tagRECT {

} tagRECT;


Функция TextOut записывает строку символов в заданном месте, используя текущий выбранный шрифт, цвет фона и цвет текста.

HDC hdc,// дескриптор DC

int nXStart,// x-координата начальной позиции

int nYStart,// y-координата начальной позиции

LPCTSTR lpString,// строка символов

int cbString // число символов

);

hdc – Дескриптор контекста устройства.

nXStart – Устанавливает x-координату, в логических координатах, контрольной точки, которую система использует для выравнивания строки.

nYStart – Устанавливает y-координату, в логических координатах, контрольной точки, которую система использует для выравнивания строки.

lpString – Указатель на строку, которую нужно написать. Строка не должна завершаться нуль-терминатором, так как параметр cbString задает длину строки.

cbString – Устанавливает длину строки. Для функции ANSI, это количество BYTE (байтов), а для функции Unicode, это является количеством WORD ( слов ).


В оконной процедуре указывается код, который должен выполняться при получении окном приложения каких-либо сообщений. Наиболее часто используемое имя для оконной процедуры – это имя WndProc.

Прототип оконной процедуры выглядит следующим образом:

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

Функция возвращает значение типа LRESULT (в действительности это целое число типа long), сообщающее успешно или нет завершена работа функции. Идентификатор CALLBACK сообщает, что это функция обратного вызова (callback function). Это означает, что вызов данной функции осуществляют внутренние механизмы Windows.

В сигнатуре оконной процедуры указано четыре параметра:

§ hwnd — Идентифицирует окно, которому предназначено сообщение.

§ uMsg — Предопределенная константа, идентифицирующая конкретное сообщение. Например, сообщению о выходе из приложения соответствует константа WM_QUIT.

§ wParam — Дополнительная информация о сообщении. Зависит от конкретного сообщения.

§ lParam — Дополнительная информация о сообщении. Зависит от конкретного сообщения.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: