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


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


/p>

Рисование линии

Нарисовать линию можно с помощью функции LineTo(). Она описана в файле wingdi.h:

WINGDIAPI BOOL WINAPI LincTo(HDC, int, int);

Первый аргумент - контекст устройства. Второй и третий аргументы -координаты точки, ДО КОТОРОЙ ОТ ТЕКУЩЕЙ ПОЗИЦИИ будет проведена линия. При успешном завершении функция возвращает TRUE.

Но здесь же возникает вопрос: где будет находиться текущая позиция после успешного выполнения функции? А будет она находиться там, где закончилась линия. Это сделано для того, чтобы легко можно было рисовать ломаные линии. В таком случае не нужно многократно вызы­вать функцию MoveToExQ для установления новой текущей позиции.

Рисование прямоугольника

Прямоугольник можно нарисовать, обратившись к функции RectangleQ. Её описание содержится в файле wingdi.h:

WINGDIAPI BOOL WINAPI Rectangle(HDC, int, int, int, int);

Аргумент первый понятен без объяснений - хэндл контекста устрой­ства. Остальные аргументы - координаты верхнего левого и нижнего

62

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

Рисование эллипса

Для рисования эллипса необходимо вызвать функцию EllipseQ, кото­рая в wingdi.h описывается следующим образом:

WFNGDIAPI BOOL WINAPI Ellipse(HDC, int, int, int, int);

Первый аргумент - это, как всегда, контекст устройства. Для того чтобы понять, как определяется эллипс, предлагаю читателю обратиться к рис. 5.

Как видно из рисунка, эллипс ограничен прямоугольником. Именно через координаты этого прямоугольника и определяется прорисовывае­мый эллипс. Второй и третий аргументы - координаты левого верхнего угла прямоугольника (на рисунке обозначены как UpX, UpY), четвертый и пятый аргументы - координаты нижнего правого угла (на рисунке обозначены как LowX, LowY).

Окружность является частным случаем эллипса. И в данном случае, если мы определим прямоугольник, у которого ширина равна высоте, т. е. квадрат, вместо эллипса получим окружность.




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



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