- •Структура программы.
- •Создание простейшего приложения Windows.
- •Работа с пером.
- •Работа с кистью.
- •Работа со шрифтами.
- •Работа с клавиатурой.
- •Работа с мышью.
- •Редактирование меню.
- •Кнопки на панели инструментов.
- •Блокировка и пометка пунктов меню.
- •Диалоговые окна.
- •Флажки и переключатели.
- •Списки.
- •Методы выбора.
- •Методы параметров рисунка.
- •Методы цветовой палитры.
- •Методы атрибутов рисунка.
- •Растровые методы.
- •Методы отсечения.
- •Методы рисования линии.
- •Методы простых рисунков.
- •Методы рисования эллипса и многоугольника.
- •Текстовые методы.
Методы простых рисунков.
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);