Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций ООП Visual C++.doc
Скачиваний:
13
Добавлен:
10.11.2019
Размер:
453.12 Кб
Скачать

Методы простых рисунков.

CDC:: Draw3dRect

Этот метод рисует трехмерный прямоугольник: верхние и левые грани цветом, указанным в clrTopLeft ; основание и правые грани цветом, указанном в clrBottomRight.

void Draw3dRect (

LPCRECT lpRect ,

COLORREF clrTopLeft,

COLORREF clrBottomRight);

void Draw3dRect (

int x,

int y,

int cx,

int cy,

COLORREF clrTopLeft ,

COLORREF clrBottomRight );

Параметры

lpRect - Ограничительный прямоугольник в логических единицах, можно передать указатель на структуру RECT или объект CRect для этого параметра.

clrTopLeft - Цвет верхних и левых сторон трехмерного прямоугольника.

clrBottomRight - Цвет основания и правых сторон трехмерного прямоугольника.

x - Логическая x-координата левого верхнего угла трехмерного прямоугольника.

y - Логическая y-координата левого верхнего угла трехмерного прямоугольника.

cx - Ширина трехмерного прямоугольника.

cy - Высота трехмерного прямоугольника.

Пример

void CMyView:: OnDraw (CDC* pDC)

{

// Выделить клиентскую область.

CRect rect;

GetClientRect (rect);

// Сократить область на 20 пикселов со всех сторон.

rect. DeflateRect (20, 20);

// Рисовать прямоугольник с красными верхними и левыми сторонами, и

// зелеными правыми стороны и основанем.

pDC-> Draw3dRect (rect, RGB (255, 0, 0), RGB (0, 255, 0));

// Те же действия, но более громоздко и неудобно :

// pDC-> Draw3dRect(rect.left, rect.top, rect.Width (), rect.Height (),

// RGB (255, 0, 0), RGB (0, 255, 0));

}

CDC:: DrawDragRect

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

void DrawDragRect (

LPCRECT lpRect ,

SIZE size,

LPCRECT lpRectLast ,

SIZE sizeLast,

CBrush* pBrush = NULL,

CBrush* pBrushLast = NULL);

Параметры

lpRect - Указатель на структуру RECT или объект CRect, который определяет логические координаты прямоугольника - в этом случае, конечная позиция рисуемого прямоугольника.

Size - Смещение от верхнего левого угла внешней границы к левому верхнему углу внутренней границы то есть толщина границы - прямоугольника.

lpRectLast -Указатель на структуру RECT или объект CRect, который определяет логические координаты позиции прямоугольника - в этом случае, начальная позиция рисуемого прямоугольника.

sizeLast - Смещение от левого верхнего угла внешней границы к левому верхнему углу внутренней границы то есть толщина границы – начального рисуемого прямоугольника.

pBrush - Указатель на объект кисти. Установленный в NULL, чтобы использовать заданную по умолчанию полутоновую кисть.

pBrushLast - Указатель на последний используемый объект кисти. Установленный в NULL, чтобы использовать заданную по умолчанию полутоновую кисть.

Замечания

В первый раз, когда Вы вызываете DrawDragRect, параметр lpRectLast должен быть = NULL.

CDC:: DrawEdge

Этот метод рисует грани прямоугольника в указанном стиле.

BOOL DrawEdge (

LPRECT lpRect ,

UINT nEdge ,

UINT nFlags );

Параметры

lpRect - Указатель на структуру RECT, которая содержит логические координаты прямоугольника.

nEdge - Тип внутреннего и внешнего края для рисования. Этим параметром должна быть комбинация одного флажка внутренней границы и одного флажка внешней границы.

nFlags - Флажки, которые определяют тип границы рисования. Для диагональных строк, флажки BF_RECT определяют конечную точку вектора, ограниченного параметром прямоугольника.

Возвращаемое значение - Отлично от нуля, если функция выполнена успешно; иначе - ноль.

CDC:: DrawIcon

Этот метод рисует значок на устройстве, представленном объектом CDC.

BOOL DrawIcon (

int x,

int y,

HICON hIcon );

BOOL DrawIcon (

POINT point,

HICON hIcon);

Параметры

x - логическая x-координата левого верхнего угла значка.

y - логическая y-координата левого верхнего угла значка.

hIcon - Идентифицирует маркер значка, чтобы рисовать.

Point - Логическиt x-и y-координаты левого верхнего угла значка. Вы можете передать структуру POINT или объект CPoint для этого параметра.

Возвращаемое значение - Отлично от нуля, если функция выполнена успешно; иначе - ноль.

Замечания

Функция размещает левый верхний угол значка положении, указанном x и y. Ресурс значка должен быть предварительно загружен, используя функции CWinApp:: LoadIcon, CWinApp:: LoadStandardIcon, или CWinApp:: LoadOEMIcon. MM_TEXT режим отображения должен быть выбран перед использованием этой функции.

CDC:: FillRect

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

void FillRect (

LPCRECT lpRect ,

CBrush* pBrush );

Параметры

lpRect - Указатель на структуру RECT, которая содержит логические координаты прямоугольника. Вы можете также передать объект CRect для этого параметра.

pBrush - Идентифицирует кисть для заполнения прямоугольника.

CDC:: FillSolidRect

Этот метод заполняет указанный прямоугольник указанным сплошным цветом.

пусто FillSolidRect (

LPCRECT lpRect ,

COLORREF clr);

пусто FillSolidRect (

int x,

int y,

int cx ,

int cy ,

COLORREF clr);

Параметры

lpRect - Ограничительный прямоугольник в логических единицах. Вы можете передать указатель на структуру RECT данных или объект CRect для этого параметра.

Clr - Цвет для заполнения прямоугольника.

x - Логическая x-координата левого верхнего угла прямоугольника.

y - Логическая y-координата левого верхнего угла прямоугольника .

cx - Ширина прямоугольника.

cy - Высота прямоугольника.

Замечание

FillSolidRect подобен CDC:: FillRect. Однако, FillSolidRect использует только сплошные цвета, обозначенные параметром COLORREF, в то время как FillRect берет кисть и поэтому может использовать твердый цвет, размытый цвет, заштрихованную кисть, или образец. FillSolidRect обычно быстрее чем FillRect.

Когда Вы вызываете FillSolidRect, цвет фона, который был предварительно установлен, используя SetBkColor, установливается в цвет, обозначенный clr.

CDC:: FrameRect

Этот метод рисует границу вокруг прямоугольника, указанного lpRect.

void FrameRect (

LPCRECT lpRect ,

CBrush* pBrush );

Параметры

lpRect - Указатель на структуру RECT или объект CRect, который содержит логические координаты левых верхних и нижних правых углов прямоугольника. Вы можете также передать объект CRect для этого параметра.

pBrush - Идентифицирует кисть.

Замечание

Метод использует данную кисть, чтобы рисовать границу. Ширина и высота границы - всегда 1 логическая единица.

CDC:: InvertRect

Этот метод инвертирует содержание указанного прямоугольника.

void InvertRect (

LPCRECT lpRect );

Параметры

lpRect - Указатель на RECT, который содержит логические координаты прямоугольника, чтобы инвертировать. Вы можете также передать объект CRect для этого параметра.

Замечания

Инверсия - логическая операция NOT и зеркально отражает биты каждого пиксела. На одноцветных дисплеях, функция делает белые пикселы черными и черные белыми пикселами. На цветных дисплеях, инверсия зависит от того, как цвета сгенерированы для дисплея. Запрос InvertRect дважды с тем же самым прямоугольником восстанавливает его предыдущие цвета.

Если прямоугольник пуст, ничто не рисуется.

Пример

// Инвертировать rect от 20,20 до 50,50.

CRect rect (20, 20, 50, 50);

pDC-> InvertRect (rect);

// Инвертирование снова восстанавливает нормальный цвет.

:: Sleep (1000);

pDC-> InvertRect (rect);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]