Compartilhar via


Método IVsGradient.DrawGradient (IntPtr, IntPtr, RECT[], RECT )

 

Desenha um determinado gradiente em um local especificado.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop.8.0 (em Microsoft.VisualStudio.Shell.Interop.8.0.dll)

Sintaxe

int DrawGradient(
    IntPtr hwnd,
    IntPtr hdc,
    RECT[] gradientRect,
    RECT[] sliceRect
)
int DrawGradient(
    IntPtr hwnd,
    IntPtr hdc,
    array<RECT>^ gradientRect,
    array<RECT>^ sliceRect
)
abstract DrawGradient : 
        hwnd:nativeint *
        hdc:nativeint *
        gradientRect:RECT[] *
        sliceRect:RECT[] -> int
Function DrawGradient (
    hwnd As IntPtr,
    hdc As IntPtr,
    gradientRect As RECT(),
    sliceRect As RECT()
) As Integer

Parâmetros

  • hwnd
    [in] Identificador de uma janela que contém a região a ser pintado com um gradiente.
  • hdc
    [in] Identificador de contexto de dispositivo usado no desenho do gradiente.
  • gradientRect
    [in] O retângulo de gradiente ou a região que contém, definindo a extensão total e a geometria através do qual o gradiente puderam ser aplicado.
  • sliceRect
    [in] O retângulo de fatia, definem a região através do qual um gradiente é realmente pintado.

Valor de retorno

Type: System.Int32

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

Comentários

COM assinatura

De vsshell80.idl:

HRESULT IVsGradient::DrawGradient(
   [in] HWND hwnd,
   [in] HDC hdc,
   [in] RECT * gradientRect,
   [in] RECT * sliceRect
);

Ambos gradientRect e sliceRect deve ser definida no sistema de coordenadas definido pela janela especificada pelo identificador de hwnd.

O SDK do ambiente oferece suporte a dois tipos de gradientes estáticos e não-static.

Para informações como os gradientes são estáticos e que são não-estático e as implicações disso, consulte __GRADIENTTYPE.

Para gradientes estáticos, o ambiente mantém uma definição permanente do retângulo de gradiente e o gradientRect parâmetro será ignorado.

O retângulo de fatia especificado pelo sliceRect parâmetro sempre deve estar contido dentro do retângulo definido pelo retângulo especificado pelo gradientRect parâmetro.

Duas regiões retangulares gradientRect e sliceRect definir como o DrawGradient método pinta um gradiente em um elemento de interface do usuário.

O gradientRect retângulo denomina-se o retângulo de gradiente ou a região que contém.Ele especifica o máximo e o local através do qual um gradiente puderam ser aplicado.

O sliceRect retângulo denomina-se o retângulo de fatia e spec Especifica a região onde o gradiente, na verdade, é pintado.

Mascaramento de gradientes pode ser feito por meio de retângulos de gradiente e a fatia de tamanhos diferentes, onde o retângulo da fatia está contido no retângulo de gradiente.Nesse caso, apenas uma parte de um elemento de interface do usuário será pintada com um gradiente, mas o padrão de gradiente é preservado como se todo o retângulo de gradiente era pintado.

Por exemplo, pintar um quadro de largura de 10 pixels em um 100 por 100 região ampla de pixel poderia ser feito

  1. Definindo um retângulo de gradiente com um RECT estrutura com cantos com um canto superior esquerdo em (0,0) e um canto inferior direito, em (100,100).

  2. Definindo fatia ampla de pixel de quatro 10 RECT estruturas,

    • uma com um canto superior esquerdo em (0,0) e um canto inferior direito em (100,10)

    • uma com um canto superior esquerdo em (0,0) e um canto inferior direito, em (10,100)

    • uma com um canto superior esquerdo em (90,0) e um canto inferior direito, em (100,100)

    • uma com um canto superior esquerdo em (0,90) e um canto inferior direito em (100,10)

  3. chamando IVsGradient.DrawGradient quatro vezes, uma vez para cada fatia retângulo e sempre usando o mesmo gradiente retângulo.

Além disso, pintura retangular pode não ser satisfatória em determinadas circunstâncias, para a instância quando pintar um controle com arredondado corners, uma guia shark-fin ou uma região não retangular que não pode ser facilmente é cortada ou mascarada.

Nesses casos, os VSPackages deve criar o pincel de pintura de um gradiente de determinado com base na matriz ou vetor de cores retornado pela GetGradientVector método.

Por exemplo, guias de arquivos complicado poderiam ser desenhadas construindo os três componentes para a guia – o fin, a área de texto e o final – onde os componentes poderiam ser desenhados por meio da substituição de cor, e alongamento.Cada pixel de uma determinada cor deve ser substituída pelo elemento na matriz retornada por GetGradientVector correspondente a sua posição no eixo horizontal.

Para obter mais informações, consulte How to: Use Visual Studio Gradient Support.

Consulte também

Interface IVsGradient
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo