BOOL SetWindowExtEx(


HDC hdc, //дескриптор контекста отображения

int xWinExt, // новое значение для xWinExt

int yWinExt, // новое значение для yWinExt

LPSIZE IpSize // предыдущий размер области просмотра

);

BOOL SetViewpor(ExtEx(

HDC hdi; // дескриптор контекста отображения

int xViewExt, // новое значение для xViewExt

int yViewExt, // новое значение для yViewExt

LPSIZE IpSize // предыдущий размер области просмотра

);

IpSize является указателем на структуру SIZE, в которую помещаются размеры предыдущей области просмотра. Если IpSizeNULL, ничего не возвращается.

В качестве примера, создадим систему координат с началом отсчета в нижнем левом углу, причем ось х - направлена слева направо, а ось у – снизу вверх. Высота и ширина должны изменяться в диапазоне О...32767 (32767 -максимально возможное число при 16 разрядной системе). Применим одинаковый масштаб по осям с использованием изотропного режима отображения(MM_ISOTROPIC).

SetMapMode (hdc. MM_ISOTROPIC);

SetWindowExtEx (hdc, 32767, 32767,NULL);

SetViewportExtEx (hdc, cxClieni, -cyClienI,NULL);

SetViewportOrg (hdc. 0, cyClienI);

 

 

Рисунок 5.3. Изображение квадрата и круга при различных соотношениях высот, к ширине окна в изотропном а), b) и анизотропном с) режимах

На рис. 5.3 показано изображение квадрата и круга при различныхотображения изотропном и анизотропном.

5.7 Рисование геометрических фигур

Не все драйверы устройств вывода могут рисовать перечисленные ниже геометрические объекты. Поэтому, перед рисованием, хорошее приложение Windows должно определить возможность рисования необходимых ему геометрических объектов и, в случае невозможности их отображения конкретным устройством вывода (не обязательно драйвера монитора, который чаще всего сможет нарисовать любые фигуры), выдать соответствующее предупреждение и прекратить работу. Для этих целей служит функция GetDeviceCaps (см. HELP).

5.7.1 Рисование точки

Эта функция имеет следующий прототип;

COLORREF SetPixel(

НDC hdc, // контекст отображения

intnXpos, //х-координата точки

int nYPos, //у - координата точки

COLORREF cllrref // цвет точки

);

Параметры nXpos и nYPos определяют координаты точки в установленном Вами режиме отображения для

контекста hdc.

Для конструирования цвета точки в форматеCOLORREF в файлеwlndows.h имеется макрокомандаRGB.Используя ее, мы можем рисовать точки следующим образом:

SetPixel(hdc, 0, 0,RGB(255, 0, 0)); //точка красного цвета в начале координат

SetPixel(hdc, 0, 0,RGB(0, 0, 255)); //точка синего цвета в начале координат

Se(Pixel(hdc, 0, 0.RGB(255, 255, 255)); //точка белою цвета н начале координат

SetPixel(hdc, 0, 0, RGB(100, 100, 100)); //точка серого цвета в начале координат

Таким образом, вы можете задать любой из 16 миллионов цветов. Но возможно вам это и не удастся. Функция SetPixel возвращает цвет, который был на экране до момента рисования Вами точки. Цвет возвращается в форматеCOLORREF.

Имеется функция, возвращающая цвет точки окна в формате COLORREF;

COLORREF GetPixel (НDC hdc,int пХроs,int n YPos);

 

Определены три макрокоманды, позволяющие выделить три цветовых компоненты из форматаCOLORREF.



Дата добавления: 2017-01-26; просмотров: 1401;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.