Condividi tramite


Funzione GradientFill (wingdi.h)

La funzione GradientFill riempie le strutture rettangolo e triangolo.

Sintassi

BOOL GradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nMesh,
  [in] ULONG      ulMode
);

Parametri

[in] hdc

Handle per il contesto del dispositivo di destinazione.

[in] pVertex

Puntatore a una matrice di strutture TRIVERTEX che ognuno definisce un vertice.

[in] nVertex

Numero di vertici in pVertex.

[in] pMesh

Matrice di strutture GRADIENT_TRIANGLE in modalità triangolo o matrice di strutture GRADIENT_RECT in modalità rettangolo.

[in] nMesh

Numero di elementi (triangoli o rettangoli) in pMesh.

[in] ulMode

Modalità di riempimento sfumato. Questo parametro può avere uno dei valori seguenti.

Valore Significato
GRADIENT_FILL_RECT_H
In questa modalità due endpoint descrivono un rettangolo. Il rettangolo è definito in modo da avere un colore costante (specificato dalla struttura TRIVERTEX ) per i bordi sinistro e destro. GDI interpola il colore da sinistra a destra e riempie l'interno.
GRADIENT_FILL_RECT_V
In questa modalità due endpoint descrivono un rettangolo. Il rettangolo è definito in modo da avere un colore costante (specificato dalla struttura TRIVERTEX ) per i bordi superiore e inferiore. GDI interpola il colore dall'alto verso il basso e riempie l'interno.
GRADIENT_FILL_TRIANGLE
In questa modalità, una matrice di strutture TRIVERTEX viene passata a GDI insieme a un elenco di indici di matrice che descrivono triangoli separati. GDI esegue l'interpolazione lineare tra vertici triangoli e riempie l'interno. Il disegno viene eseguito direttamente in modalità da 24 a 32 bpp. Il dithering viene eseguito in modalità 16, 8, 4 e 1-bpp.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE.

Commenti

Per aggiungere ombreggiatura liscia a un triangolo, chiamare la funzione GradientFill con i tre endpoint di triangolo. GDI eseguirà l'interpolazione lineare e riempirà il triangolo. Ecco l'output di disegno di un triangolo ombreggiato.

Illustrazione di un triangolo che si riempie dall'arancione nel punto superiore al magenta sulla linea inferiore Per aggiungere ombreggiatura liscia a un rettangolo, chiamare GradientFill con le coordinate superiore sinistra e inferiore destra del rettangolo. Per disegnare un rettangolo sono disponibili due modalità di ombreggiatura. In modalità orizzontale, il rettangolo è ombreggiato da sinistra a destra. In modalità verticale, il rettangolo è ombreggiato dall'alto verso il basso. Ecco l'output di disegno di due rettangoli ombreggiati, uno in modalità orizzontale, l'altro in modalità verticale:Illustrazione di un rettangolo ombreggiato da scuro sul lato sinistro alla luce sul lato destroIllustrazione di un rettangolo che ombreggiato da scuro in alto alla luce nella parte inferiore La funzione GradientFill utilizza un metodo mesh per specificare gli endpoint dell'oggetto da disegnare. Tutti i vertici vengono passati a GradientFill nella matrice pVertex . Il parametro pMesh specifica la modalità di connessione di questi vertici per formare un oggetto . Quando si riempie un rettangolo, pMesh punta a una matrice di strutture GRADIENT_RECT . Ogni struttura GRADIENT_RECT specifica l'indice di due vertici nella matrice pVertex . Questi due vertici formano il limite superiore sinistro e inferiore destro di un rettangolo.

Nel caso di riempimento di un triangolo, pMesh punta a una matrice di strutture GRADIENT_TRIANGLE . Ogni struttura GRADIENT_TRIANGLE specifica l'indice di tre vertici nella matrice pVertex . Questi tre vertici formano un triangolo.

Per semplificare l'accelerazione hardware, questa routine non è necessaria per essere perfetta in pixel nell'interno del triangolo.

Si noti che GradientFill non usa il membro Alpha della struttura TRIVERTEX . Per usare GradientFill con trasparenza, chiamare GradientFill e quindi chiamare AlphaBlend con i valori desiderati per il canale alfa di ogni vertice.

Per altre informazioni, vedere Ombreggiatura liscia, Disegno di un triangolo ombreggiato e Disegno di un rettangolo ombreggiato.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Msimg32.lib
DLL Msimg32.dll

Vedi anche

Funzioni bitmap

Panoramica delle bitmap

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX