Condividi tramite


Funzione GdiGradientFill (wingdi.h)

La funzione GdiGradientFill riempie le strutture rettangolo e triangolo.

Sintassi

BOOL GdiGradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nCount,
  [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 di triangolo.

[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] nCount

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

Nota Questa funzione è uguale a GradientFill.
 
Per aggiungere ombreggiatura liscia a un triangolo, chiamare la funzione GdiGradientFill con i tre endpoint del 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 GdiGradientFill 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 dal lato sinistro alla luce sul lato destro Illustrazione di un rettangolo ombreggiato dall'alto verso l'alto alla luce nella parte inferiore La funzione GdiGradientFill utilizza un metodo mesh per specificare gli endpoint dell'oggetto da disegnare. Tutti i vertici vengono passati a GdiGradientFill 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 GdiGradientFill non usa il membro Alpha della struttura TRIVERTEX . Per usare GdiGradientFill con trasparenza, chiamare GdiGradientFill e quindi chiamare GdiAlphaBlend 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 Gdi32.lib
DLL Gdi32.dll

Vedi anche

Funzioni bitmap

Panoramica delle bitmap

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX