Контекст устройства. Работа с текстом. Диалоговое окно выбора цвета. Настройка режима отображения. Точечный рисунок. Класс CBitmap, страница 2

}

Если вам необходимо перерисовать окно не только при его увеличении, но и при уменьшении, то целесообразно создать функцию обработки события изменения размеров окна, которая содержит команду посылки сообщения WM_PAINT.

void CGraphDlg::OnSize ( UINT nType , int cx , int cy )

{

         CDialog::OnSize ( nType ,  cx , cy ) ;

         SendMessage ( WM_PAINT ) ;         // посылаем команду родительскому окну перерисовать окно

}

Работа с текстом

Вывод текста. Функция TextOut

Для вывода текста в классе CDC определено два метода.

Назначение: рисует строку символов в указанном положении, используя текущий шрифт.

Синтаксис:

BOOL TextOut ( int x, int y, const CString& str ) ;

virtual BOOL TextOut ( int x, int y, LPCTSTR lpszString , int nCount ) ;

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

Параметры:

x, y                       определяет логические координаты строки.

lpszString             указатель на строку символов, значение которой будет нарисовано.

str                        объект типа CString, значение которой будет нарисовано.

nCount                 определяет количество символов, которые будут нарисованы.

Замечания: по умолчанию, текущие координаты функцией не используются и не обновляются. Для использования текущих координат нужно вызвать функцию SetTextAlign со значением параметра nFlags равным TA_UPDATECP. Если флаг установлен, то вместо значений параметров x, y используются значения текущих координат.

Вывод текста в прямоугольнике отсечения. Функция ExtTextOut

Для вывода текста в прямоугольнике отсечения в классе CDC определено два метода.

Назначение: рисует строку символов в указанном положении, используя текущий шрифт; отсекает текст, который вышел за границами заданного прямоугольника; позволяет изменить интервалы между символами.

Синтаксис:

BOOL ExtTextOut ( int x , int y , UINT nOptions , LPCRECT lpRect , const CString& str , LPINT lpDxWidths  ) ;

virtual BOOL ExtTextOut ( int x , int y , UINT nOptions , LPCRECT lpRect , LPCTSTR lpszString , UINT nCount , LPINT lpDxWidths ) ;

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

Параметры:

x , y                      определяет  логические координаты строки.

lpszString             указатель на строку символов, значение которой будет нарисовано.

str                        объект типа CString, значение которой будет нарисовано.

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

nCount                 определяет количество символов, которые будут нарисованы.

LpDxWidths        указатель на массив целых чисел, которые определяют интервал между соседними символами. Если параметр недействителен (NULL), то функция использует стандартный интервал между символами.

nOptions              определяет тип прямоугольника, которые будут нарисованы.

Этот параметр может содержать одно, два, или ни одного из следующих значений:

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

ETO_OPAQUE                  прямоугольник будет закрашен текущим цветом фона.

Цвет фона. Функции GetBkColor, SetBkColor

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

Синтаксис:

COLORREF GetBkColor ( ) const;

virtual COLORREF SetBkColor ( COLORREF crColor ) ;

Возвращаемое значение: Предыдущий цвет фона, если функция успешно выполнена, и 0x80000000 в противном случае.

Цвет символов текста. Функции GetTextColor, SetTextColor

Получить и изменить цвет символов текста можно с помощью следующих функций.

Синтаксис:

COLORREF GetTextColor ( ) const;

virtual COLORREF SetTextColor ( COLORREF crColor ) ;

Возвращаемое значение: Предыдущий цвет символов текста.

Параметры:

crColor                новое значение цвета символов текста.

Выравнивание текста. Функции GetTextAlign, SetTextAlign