IVsPackageDefinedTextMarkerType.DrawGlyphWithColors(IntPtr, RECT[], Int32, IVsTextMarkerColorSet, UInt32, Int32) Метод

Определение

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

public:
 int DrawGlyphWithColors(IntPtr hdc, cli::array <Microsoft::VisualStudio::OLE::Interop::RECT> ^ pRect, int iMarkerType, Microsoft::VisualStudio::TextManager::Interop::IVsTextMarkerColorSet ^ pMarkerColors, System::UInt32 dwGlyphDrawFlags, int iLineHeight);
public int DrawGlyphWithColors (IntPtr hdc, Microsoft.VisualStudio.OLE.Interop.RECT[] pRect, int iMarkerType, Microsoft.VisualStudio.TextManager.Interop.IVsTextMarkerColorSet pMarkerColors, uint dwGlyphDrawFlags, int iLineHeight);
abstract member DrawGlyphWithColors : nativeint * Microsoft.VisualStudio.OLE.Interop.RECT[] * int * Microsoft.VisualStudio.TextManager.Interop.IVsTextMarkerColorSet * uint32 * int -> int
Public Function DrawGlyphWithColors (hdc As IntPtr, pRect As RECT(), iMarkerType As Integer, pMarkerColors As IVsTextMarkerColorSet, dwGlyphDrawFlags As UInteger, iLineHeight As Integer) As Integer

Параметры

hdc
IntPtr

[in] Дескриптор контекста устройства отображения, который определяет представляющую интерес видимую область.

pRect
RECT[]

[in] Указатель на структуру RECT, задающую ограничивающий прямоугольник для маркера.

iMarkerType
Int32

[in] Целое число, содержащее тип маркера.

pMarkerColors
IVsTextMarkerColorSet

[in] Указатель на объект цветов маркера.

dwGlyphDrawFlags
UInt32

[in] Параметры для рисования глифа в поле мини-приложения. Список dwGlyphDrawFlags значений см. в разделе. GLYPHDRAWFLAGS

iLineHeight
Int32

[in] Целое число, указывающее высоту строки.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Подпись COM

Из текстмгр. IDL:

HRESULT IVsPackageDefinedTextMarkerType::DrawGlyphWithColors(  
   [in] HDC hdc, [in] RECT *pRect,   
   [in] long iMarkerType,   
   [in] IVsTextMarkerColorSet *pMarkerColors,   
   [in] DWORD dwGlyphDrawFlags,   
   [in] long iLineHeight  
);  

Этот метод вызывается средой, если MV_GLYPH для типа маркера указано значение. Чтобы использовать этот метод, нарисуйте глиф в видимой области, заданной hdc параметром в ограничивающем прямоугольнике. Вместо жестких цветов программирования используйте pMarkerColors параметр для вызова GetMarkerColors и возврата цветов из текущего типа маркера или связанных маркеров, чтобы синхронизироваться с пользовательскими настройками цвета. Причина IVsTextMarkerColorSet заключается в том, что некоторые типы маркеров используют цвета глифов, которые отличаются от цветов встроенного текста и отключаются от других маркеров.

При реализации выполните следующие рекомендации DrawGlyphWithColors .

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

Вместо точечных рисунков используйте примитивы интерфейс графических устройств (GDI), так как размер линии может варьироваться в зависимости от большого числа размеров и необходимости масштабирования графики. Однако если вы хотите использовать точечные рисунки, предоставьте различные размеры растровых изображений, чтобы растянуть их для правильной работы на всех доступных размерах линий, которые может задать пользователь, включая очень крупные размеры для специальных возможностей.

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

Если MV_MULTILINE_GLYPH в стиле маркера указано значение, эта функция вызывается дважды для каждого прохода рисования — один раз для рисования внутренних и заключительных фрагментов глифа, а также для рисования верхней части. Значение, dwGlyphDrawFlags передаваемое в этот метод, указывает, что делать:

Если GDF_MULTILINE не передается в, просто нарисуйте верхний край маркера.

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

Применяется к