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

IpBuffer - указатель на буфер, в который заносится ширина всех символов указанной последовательности.

CBrush* GetCurrentBrush( ) const;

При успешном завершении метод возвращает указатель на текущий выбранный объект CBrush (текущая кисть). При возникновении ошибки возвращается значение NULL.

CFont* GetCurrentFont() const;

При успешном завершении метод возвращает указатель на текущий объект CFont (текущий шрифт). При возникновении ошибки возвращается значение NULL.

CPalette* GetCurrentPalette( ) const;

При успешном завершении метод возвращает указатель на текущий объект CPalette (текущая палитра). При возникновении ошибки возвращается значение NULL.

CPen* GetCurrentPen() const;

При успешном завершении метод возвращает указатель на текущий объект СРеп (текущее перо). При возникновении ошибки возвращается значение NULL.

CPoint GetCurrentPosition( ) const;

Метод возвращает логические координаты текущей точки как объект CPoint.

Координаты текущей точки могут быть установлены методом MoveTo.

static CBrush* PASCAL GetHalftoneBrush();

При успешном завершении метод возвращает указатель на объект CBrush, определяющий полутоновую кисть. Такая кисть смешивает цвет переднего и заднего фона для создания произвольной шаблонной кисти.

Int GetMapMode( ) const;

Метод возвращает тип логической системы координат (mapping mode). COLORREF GetNearestColor( COLORREF crColor ) const;

Метод возвращает значение RGB-цвета, наиболее близкое к указанному значению crColor.

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

COLORREF GetPixel( int x, int у) const; COLORREF GetPixel( POINT point) const;

Эти методы возвращают значение RGB-цвета в указанной точке. Если координаты точки лежат вне выбранной области, то метод возвращает зна­чение -1.

int GetPolyFilIMode( ) const;

Метод возвращает режим заполнения многоугольника: ALTERNATE или WINDING.

int GetROP2( ) const;

Метод возвращает режим отображения (drawing mode). По умолчанию используется режим R2_COPYPEN.

HDC GetSafeHdc( ) const;

Метод возвращает дескриптор контекста устройства. UINT GetTextAlign( ) const;

Метод возвращает установки выравнивания текста. Они указываются одним или несколькими следующими флажками: TA_BASELINE, ТА_ВОТТОМ, TA_CENTER, TAJLEFT, TA_NOUPDATECP, TA_RIGHT, TAJTOP, TA_UPDATECP.

COLORREF GetTextColor() const;

Метод возвращает RGB-цвет текущего текста. Этот цвет является цветом переднего плана и используется такими методами GDI-интерфейса для вывода текста, как TextOut, ExtTextOut, TabbedTextOut.

CSize GetTextExtent( LPCTSTR ipszString, int nCount) const; CSize GetTextExtent( const CString& str ) const;

Метод возвращает в объекте CSize размер указанной строки в логических единицах.

BOOL GetTextMetrics( LPTEXTMETRIC ipMetrics ) const;

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

CSize GetViewportExt( ) const;

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

CPoint GetViewportOrg() const;

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

CPoint GetWindowOrg() const;

Метод возвращает значение выделенной точки окна. void InvertRect( LPCRECT lpRect);

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

BOOL InvertRgn( CRgn* pRgn );

Метод инверсно отображает содержание указанной области pRgn. BOOL IsPrinting( ) const;

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

BOOL LineТо( int x, int у ); BOOL LineTo( POINT point);

Метод рисует линию текущим пером от текущей позиции до указанной точки (х, у). При успешном отображении линии метод возвращает ненулевое значение.

CPoint MoveTo( int x, int у ); CPoint MoveTo( POINT point);

Эти методы устанавливают значение текущей позиции.

Параметры:

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

point - структура POINT или объект CPoint, описывающие новую текущую позицию. BOOL PaintRgn( CRgn* pRgn );

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

BOOL Pie( int xl, int yl, int x2, int у 2, int x3, int y3, int x4, int у4); BOOL Pie( LPCRECT lpRect, POINT ptStart, POINT ptEnd);

Метод отображает сектор эллипса, образуемый пересечением эллипса и двух радиусов. Параметры (x1, у 1) и (х2, у2) указывают координаты верхнего левого и нижнего правого угла прямоугольника, в который вписывается эллипс. Параметры (хЗ, уЗ) и (х4, у4) указывают координаты радиусов эллипса. Сектор отображается текущим пером и заполняется текущей кистью.

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

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

BOOL Polygon( LPPOINT ipPoints, int nCount);

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

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

Параметры:

IpPoints - указатель на массив точек, описывающих вершины многоугольника. Каждая точка в массиве описывается структурой POINT или объектом CPoint. nCount - количество вершин многоугольника.

Напомним, что режим заполнения многоугольника определяется методом GetPoIyFillMode. Для изменения режима следует использовать метод SetPolyFfflMode.

BOOL Polyline( LPPOINT IpPoints, int nCount);

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

Параметры:

IpPoints - указатель на массив структур POINT или объектов CPoint, описывающий соединяемые точки. nCount - количество точек в массиве (не менее двух).

Отметим, что в отличие от метода УпеТо метод Polyline не изменяет значения текущей позиции.

BOOL PolylineTo (const POINT* IpPoints, int nCount);

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

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

BOOL PolyPolygon (LPPOINT IpPoints, LPINT ipPolyCounts, int nCount);

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

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

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

BOOL PolyPolyline( const POINT* IpPoints, const DWORD* ipPolyPoints, int nCount);

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

Параметры:

IpPoints - указатель на массив, содержащий вершины линейных сегментов. IpPolyPoints - указатель на массив, содержащий количество точек для каждого многоугольника. nCount - количество многоугольников (значений в массиве lpPolyPoints).

BOOL Rectangle( int x1, int y1, int x2, int y2 ); BOOL Rectangle( LPCRECT IpRect);

Метод отображает прямоугольник, используя текущие перо и кисть.

BOOL RoundRect( int x1, int y1, int x2, int у2, int x3, int y3 ) BOOL RoundRect( LPCRECT IpRect, POINT);

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

BOOL SelectClipPath( int nMode );

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

Параметры:

nMode - указывает режим формирования clipping-области: RGN_AND - новая clipping-область является пересечением существующей

области и текущего графического объекта;

RGN_COPY - новой областью становится текущий графический объект; RGN_DIFF - новая clipping-область является объединением существующей

области и той области, что расположена вне текущего графического

объекта;

RGN_OR - новая clipping-область является объединением существующей

области и текущего графического объекта; RGN_XOR - новая clipping-область является объединением существующей

области и текущего графического объекта, но без пересекающихся

областей.

CPen* SelectObject( CPen* рРеп ); CBrush* SelectObject( CBrush* pBrush ); virtual CFont* SelectObject( CFont* pFont); CBitmap* SelectObject( CBitmap* pBitmap ); int SeIectObject( CRgn* pRgn );

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

Ц CDC dc(this); Создание контекста устройства класса CDC или производного, например CPaintDC CPen myNewPen; // Перо CPen* myOldPen; myNewPen=CreatePen(PS_SOLID, RGB(255,0,0)); // Создание красного пера myOldPen= dc.SelectObject(&myNewPen); // Привязывание объекта // к контексту устройства dc.TextOut(40,20"TEXT", 4); // Использование метода контекста устройства //для вывода текста

virtual COLORREF SetBkColor( COLORREF crColor );

Метод устанавливает новый цвет фона. int SetBkMode( int nBkMode );

Метод устанавливает режим закрашивания фоновым цветом: прозрачный (TRANSPARENT) или непрозрачный (OPAQUE).

virtual int SetMapMode( int nMapMode );

Метод устанавливает тип логической системы координат, определяющей единицы измерения. Режим указания координат в пикселях устанавливается параметром nMapMode, равным ММ_ТЕХТ.

COLORREF SetPixel( int x, int у, COLORREF crColor); COLORREF SetPixel( POINT point, COLORREF crColor);

Эти методы устанавливают цвет указанного пикселя и возвращает установленное значение (наиболее близкое к требуемому). Цвет задается RGB-значением.

int SetROP2( int nDrawMode );

Метод устанавливает новый режим отображения (drawing mode) и возвращает значение старого режима. Режим отображения определяет, каким

образом комбинируются цвет пера и закрашиваемый объект с ранее имеющемся на экране цветом.

Параметры:

nDrawMode - режим отображения, который, например, может указываться следующими значениями: R2_BLACK - пиксель всегда черный; R2_WHITE - пиксель всегда белый; R2_NOP - цвет пикселя не изменяется;

R2_NOT - пиксель имеет цвет, инверсный относительно цвета экрана; R2_COPYPEN - пиксель имеет цвет пера. UINT SetTextAlign( UINT nFlags);

Метод определяет установки выравнивания текста. virtual COLORREF SetTextColor( COLORREF crColor );

Метод устанавливает новый цвет текста и возвращает предыдущее зна­чение RGB-цвета.

virtual CSize TabbedTextOut( int x, int y, LPCTSTR ipszString, int nCount, int nTabPositions, LPINT ipnTabStopPositions, int nTabOrigin ); CSize TabbedTextOut( int x, int y, const CString& str, int nTabPositions, LPINT IpnTabStopPositions, int nTabOrigin );

Эти методы выполняют вывод указанной строки текста, выравненного по заданным символам табуляции. Параметр IpnTabStopPositions описывает массив х-координат позиций табуляции, а параметр nTabPositions - количество значений в массиве.

virtual BOOL TextOut( int x, int y, LPCTSTR IpszString, int nCount); BOOL TextOut( int x, int y, const CStringA str );

Метод выводит указанную строку текста начиная с позиции (х, у) (верхний левый угол прямоугольника, ограничивающего текст). Количество выводимых символов строки задается параметром nCount. По умолчанию метод не изменяет значения текущей позиции. Для того чтобы параметры (х, у) игнорировались и вместо них использовалось значение текущей позиции, следует вызвать метод SetTextAlign со значением параметра nFlags, равным TA_UPDATECP.

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

Рисующий инструментарий

Windows предоставляет различный рисующий инструментарий, реализованный в Visual C++ как классы объектов графического интерфейса.

Между классами и типом Windows-объектов существует следующее соответствие:

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