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 |
---|---|
|
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. |
|
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. |
|
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.
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: 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 |