IVsPackageDefinedTextMarkerType.DrawGlyphWithColors(IntPtr, RECT[], Int32, IVsTextMarkerColorSet, UInt32, Int32) Método

Definição

Desenha um glifo no contexto de exibição fornecido e no retângulo delimitador usando as cores fornecidas.

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

Parâmetros

hdc
IntPtr

no Identificador para um contexto de dispositivo de exibição que define a região de interesse visível.

pRect
RECT[]

no Ponteiro para uma estrutura RECT que define o retângulo delimitador para o marcador.

iMarkerType
Int32

no Inteiro que contém o tipo de marcador.

pMarkerColors
IVsTextMarkerColorSet

no Ponteiro para um objeto de cores de marcador.

dwGlyphDrawFlags
UInt32

no Opções para desenhar o glifo na margem do widget. Para obter uma lista de dwGlyphDrawFlags valores, consulte GLYPHDRAWFLAGS

iLineHeight
Int32

no Inteiro que especifica a altura da linha.

Retornos

Int32

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro.

Comentários

Assinatura COM

De textmgr. idl:

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

Esse método é chamado pelo ambiente se você especificar um valor de MV_GLYPH para o tipo de marcador. Para usar esse método, desenhe o glifo na região visível de interesse especificada pelo hdc parâmetro dentro do retângulo delimitador. Em vez de cores de codificação rígida, use o pMarkerColors parâmetro para chamar GetMarkerColors e retornar as cores do tipo de marcador atual ou marcadores relacionados para que você esteja sincronizado com as personalizações de cor do usuário. O motivo IVsTextMarkerColorSet é usado para determinar cores é que alguns tipos de marcador usam cores de glifo diferentes das cores de texto embutidas e são desativados de outros marcadores.

Siga estas diretrizes ao implementar DrawGlyphWithColors :

Não desenhe nada fora do retângulo delimitador que retorna com o pRect parâmetro.

Use primitivos Graphics Device Interface (GDI) em vez de bitmaps, pois o tamanho de uma linha pode variar em um grande número de tamanhos e o dimensionamento de gráficos é necessário. No entanto, se você quiser usar bitmaps, forneça uma variedade de tamanhos de bitmap para que você possa estendê-los para trabalhar corretamente em todos os tamanhos de linha disponíveis que o usuário pode definir, incluindo tamanhos muito grandes para as necessidades de acessibilidade.

Não desenhe nenhum texto em seu marcador para fins de dimensionamento. Até mesmo símbolos universais, como um ponto de exclamação, são desencorajados.

Se você tiver especificado um valor de MV_MULTILINE_GLYPH no seu estilo de marcador, essa função será chamada duas vezes para cada passagem de pintura — uma vez para pintar o interior e o final do glifo e novamente para desenhar a parte superior. O valor de dwGlyphDrawFlags passado para esse método indica o que fazer:

Se GDF_MULTILINE não for passado, basta desenhar a borda superior do marcador.

Se GDF_MULTILINE for especificado, você precisará fazer alguns cálculos com base em outros sinalizadores para preencher a área de glifos de marcador. Se GDF_BOTTOMEDGE for passado, o usará a parte da altura da linha inferior do retângulo delimitador de entrada para desenhar uma parte final do glifo. Se GDF_TOPEDGE for passado, o usará a parte da altura da linha superior para desenhar a parte superior do glifo. Qualquer espaço restante no retângulo delimitador de entrada é o interior e deve ser pintado pela sua função.

Aplica-se a