- •Средства работы с графикой
- •Методы класса cdc
- •Int AbortDoc();
- •Void DrawFocusRect( lpcrect IpRect);
- •IpBuffer - указатель на буфер, в который заносится ширина всех символов указанной последовательности.
- •Int GetMapMode( ) const;
- •CPen - hpen, cBrush -hbrush, cFont - hfont, cBitmap- hbitmap, cPalette- hpalette, cRgn - hrgn.
- •Throw( cResourceException );
- •Int CombineRgn( cRgn* pRgnl, cRgn* pRgn2, int nCombineMode );
- •Int CopyRgn( cRgn* pRgnSrc );
- •Int GetBitmap( bitmap* pBitMap );
- •Методы класса cFont
- •IpszFaceName - объект cString или указатель на строку, содержащую имя
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 - последний символ.