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] Целое число, указывающее высоту строки.
Возвращаемое значение
Если метод завершается успешно, возвращает значение 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 передается значение, то для рисования верхней части глифа использует часть верхней строки высотой. Все оставшееся пространство в ограничивающем прямоугольнике является внутренним и должно зарисовываться вашей функцией.