Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
589.31 Кб
Скачать

Void DrawFocusRect( lpcrect IpRect);

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

Повторный вызов этого метода с тем же значением параметра удаляет ранее отображенный прямоугольник.

Отметим, что область, содержащая прямоугольник, отображенный данным методом, не может быть прокручена. Для прокрутки сначала следует повторно вызвать данный метод для отмены прямоугольника, затем выполнить прокрутку и только потом опять вызвать метод DrawFocusRect для отображения прямоугольника, находящегося в фокусе.

BOOL DrawFrameControl( LPRECT IpRect, UINT nType, UINT nState );

Метод отображает рамку элемента управления в указанном стиле. При успешном завершении метод возвращает ненулевое значение.

Параметры:

IpRect - координаты прямоугольной области. пТуре - один из следующих типов элементов управления: DFC_BUTTON - стандартная кнопка; DFC_CAPTION - строка заголовка; DFC_MENU - меню; DFC_SCROLL - линейка прокрутки. nState - первоначальное состояние элемента управления.

Параметр nState может задаваться одним или несколькими следующим значениями: DFCS_CHECKED, DFCS_FLAT, DFCSJNACTIVE, DFCS_MONO, DFCS_PUSHED.

В следующей таблице приводится список значений параметра nState для каждого из четырех типов элементов управления:

пТуре

nState

DFC BUTTON (кнопка)

DFCS

BUTTON3STATE

Кнопка, имеющая три состояния;

DFCS

BUTTONCHECK

Переключатель;

DFCS

BUTTONPUSH

Командная кнопка;

DFCS.

BUTTONRADIO

Радиокнопка;

DFCS

BUTTONRADIOIMAGE

Изображение для радиокнопки;

DFCS

BUTTONRADIOMASK

Маска для радиокнопки;

DFC CAPTIOl (строка заголовка)

DFCS

CAPTIONCLOSE

Кнопка закрытия окна (Close);

DFCS

CAPTIONHELP

Кнопка вызова справки (Help);

DFCS_CAPTIONMAX

Кнопка распахивания окна;

DFCS_CAPTIONMIN

Кнопка сворачивания окна;

DFCS_CAPTIONRESTORE

Кнопка восстановления окна;

DFC_MENU (меню)

DFCSJWENUARROW

Стрелка для подменю;

DFCS_MENUBULLET

Буллит;

DFCS_MENUCHECK

Маркирующий флажок;

DFC SCROLL (линейка прокрутки)

DFCS_SCROLLCOMBOBOX

Линейка прокрутки комбинирован­ного окна;

DFCS_SCROLLDOWN

Стрелка вниз линейки прокрутки;

DFCS_SCROLLLEFT

Стрелка влево линейки прокрутки;

DFCS_SCROLLRIGHT

Стрелка вправо линейки прокрутки;

DFCS_SCROLLSIZEGRIP

Маркер изменения размера, распола­гаемый в правом нижнем углу окна;

DFCS_SCROLLUP

Стрелка вверх линейки прокрутки;

BOOL Drawlcon( int x, int у, HICON hlcon ); BOOL Drawlcon( POINT point, HICON hlcon );

Метод отображает указанную пиктограмму в заданной точке (верхний левый угол пиктограммы).

Отметим, что перед изображением ресурс пиктограммы следует предварительно загрузить. Для этого можно использовать методы CWinApp::LoadIcon, CWinApp-LoadStandardlcon или CWmApp::LoadOEMIcon. Также должен быть предварительно установлен режим ММ_ТЕХТ.

При успешном завершении метод возвращает ненулевое значение.

BOOL DrawState( CPoint pt, CSize size, HBITMAP hBitmap, UINT nFlags,

HBRUSH hBrush = NULL );

BOOL DrawState( CPoint pt, CSize size, CBitmap* pBitmap, UINT nFlags,

CBrush* pBrush = NULL );

BOOL DrawState( CPoint pt, CSize size, HICON hlcon, UINT nFlags,

HBRUSH hBrush = NULL );

BOOL DrawState( CPoint pt, CSize size, HICON hlcon, UINT nFlags, CBrush*

pBrush = NULL );

BOOL DrawState( CPoint pt, CSize size, LPCTSTR ipszText, UINT nFlags,

BOOL bPrefixText = TRUE, int nTextLen = 0, HBRUSH hBrush = NULL );

BOOL DrawState( CPoint/??, CSize size, LPCTSTR IpszText, UINT nFlags, BOOL bPrefixText = TRUE, int nTextLen - 0, CBrush* pBrush = NULL );

Эти методы используются для показа битовых изображений, пиктограмм и текста с добавлением некоторых визуальных эффектов (например, отображение недоступного состояния).

Параметры:

pt - точка расположения изображения. size - размер изображения. hBitmap - дескриптор битового изображения.

nFlags - флажки, определяющие тип и состояние изображения. Например, nFlag может принимать значения DST_BITMAP, DSTJCON, DST_PREFTXTEXT, DSTJTEXT, DSS_NORMAL, DSS_UNION, DSS_DISABLED/ DSS_DEFAULT.

virtual int DrawTexi( LPCTSTR ipszString, int nCount, LPRECT lpRect, UINT

nFormat);

int DrawText( const CString& str, LPRECT IpRect, UINT nFormat);

Метод располагает указанный текст в заданной прямоугольной области, одновременно форматируя его. Шрифт, цвет текста и фона берутся из контекста устройства. В том случае если не установлен формат DT_NOCLIP, то текст, не помещающийся в прямоугольную область, будет кадрирован. Если не используется формат DT_SINGLELINE, то форматируемый текст может располагаться на нескольких строках.

При успешном завершении метод возвращает высоту текста.

Приведем несколько значений параметра nFormat, позволяющих отформатировать текст следующим образом:

DT_BOTTOM - выравнять по нижнему краю прямоугольника (только совместно с форматом DT_SINGLELINE); DT_CENTER - центрировать текст горизонтально; DT_LEFT - выравнивать текст по левому краю; DT_NOCLIP - отображать без кадрирования; DT_RIGHT - выравнивать по прайому краю.

BOOL Ellipse (int xl, int yl, int x2, int y2 ); BOOL Ellipse (LPCRECT IpRect);

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

void FilIRect( LPCRECT IpRect, CBrush* pBrush );

Метод закрашивает указанную прямоугольную область заданной кистью.

Кисть может быть создана методами класса CBrush: CreateHatchBrush, CreatePatternBrush или CreateSolidBrush. Также кисть можно получить вызовом метода GetStockObject.

BOOL FilIRgn( CRgn* pRgn, CBrush* pBrush );

Метод закрашивает заданной кистью указанную область.,

void FfflSolidRect( LPCRECT ipRect, COLORREF clr);

void FfflSolidRect( int x, int y, int ex, int cy, COLORREF clr);

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

Отметим, что данный метод изменяет ранее установленное (методом SetBkColor) значение фонового цвета на значение, указанное параметром clr.

void FrameRect( LPCRECT IpRect, CBrush* pBrush );

Метод рисует рамку вокруг указанной прямоугольной области. Ширина и высота данной рамки всегда равняются одной логической единице. Для отображения используется указанная кисть. BOOL FrameRgn( CRgn* pRgn, CBrush* pBrush, int n Width, int nHeight);

Метод рисует рамку вокруг указанной области.

Параметры:

pRgn - указатель на объект CRgn, описывающий область, вокруг которой рисуется рамка.

pBrush - указатель на объект CBrush, определяющий кисть, используемую для рисования рамки. п Width - ширина стороны рисуемой рамки. nHeight - высота рамки. static CDC* PASCAL FromHandle( HDC hDC );

Метод возвращает указатель на CDC-объект, описывающий контекст устройства.

COLORREF GetBkColor() const;

Метод возвращает RGB-значение фонового цвета. int GetBkMode( ) const;

Метод возвращает значение режима заполнения фоновым цветом: OPAQUE, TRANSPARENT или TRANSPARENT1.

BOOL GetCharABCWidths( UINT nFirstChar, UINT nLastChar, LPABC Ipabc )

const;

BOOL GetCharABCWidths( UINT nFirstChar, UINT nLastChar,

LPABCFLOAT ipABCF) const;

Эти методы определяют ширину последовательности символов для текущего TrueType-шрифта. Значение ширины вычисляется в логических единицах. При успешном завершении метод возвращает ненулевое значение.

BOOL GetCharWidth( UINT nFirstChar, UINT nLastChar, LPINT ipBuffer) const; BOOL GetCharWidth( UINT nFirstChar, UINT nLastChar, float* ipFloatBuffer) const;

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

Параметры:

nFirstChar - указывает первый символ из последовательности символов текущего шрифта. nLastChar - последний символ.

Соседние файлы в папке VC++Баженова