Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 51


Инструментами рисования в Windows являются перо (реп) и кисть (brash). Перо является инструментом для прорисовки линий, цвет и способ заполнения замкнутых графических объектов, таких, как круги, прямоугольники, эллипсы и так называемые регионы, определяются текущей кистью. Во-вторых, рисование невозможно без определения той точки, от которой мы начинаем прорисовку того или иного графического объекта. Обычно эта точка называется текущей графической позицией.

Установка текущей позиции

Для установки текущей позиции используется функция MoveToExQ. В файле заголовков wingdi.h эта функция описывается следующим образом:

WTNGDIAPI BOOL WINAPI MoveToEx(HDC, irit, int, LPPOINT);

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

typedef struct tagPOINT

LONG x; LONG y; } POINT, *PP()INT, NEAR *NPPOINT, FAR *LPPOINT;

Если при вызове функции указатель на структуру типа POINT равен NULL, то координаты старой текущей позиции не возвращаются.

Прорисовка одного пикселя

Прорисовать один пиксель в определенной позиции мы можем с по­мощью вызова функции SetPixelQ, описанной в wingdi.h:

WINGDIAPF COLORREF WINAPI SetPixcl(HDC. int. int, COLORREF);

59

Первые три аргумента очевидны - контекст устройства вывода и ко­ординаты прорисовываемого пикселя. Но что такое COLORREF?

Здесь следует пояснить, что каждый пиксель на экране состоит из тех микроточек - красной, зеленой и синей. Каждая из этих микроточек может светиться с интенсивностью от 0 (микроточка не светится) до 255 (максимальная яркость). Например, если светится только красная состав­ляющая, то получаются цвета от темно-бордового (почти черного) до ярко красного. Комбинируя микроточки и их интенсивность, мы можем определить почти 17 миллионов цветов (будут ли они все поддерживать­ся на компьютере читателя, определяется видеоподсистемой компьютера, но это уже другой разговор). Обычно в таких случаях говорят об RGB значениях цвета (red, green, blue - красный, зеленый, голубой).




Начало  Назад  Вперед



Книжный магазин