Condividi tramite


Metodo LinearGradientBrush::SetBlend (gdiplusbrush.h)

Il metodo LinearGradientBrush::SetBlend imposta i fattori di fusione e le posizioni di blend di questo pennello sfumatura lineare per creare una miscela personalizzata.

Sintassi

Status SetBlend(
  [in] const REAL *blendFactors,
  [in] const REAL *blendPositions,
  [in] INT        count
);

Parametri

[in] blendFactors

Tipo: const REAL*

Puntatore a una matrice di numeri reali che specificano fattori di fusione. Ogni numero nella matrice specifica una percentuale del colore finale e deve trovarsi nell'intervallo compreso tra 0,0 e 1,0.

[in] blendPositions

Tipo: const REAL*

Puntatore a una matrice di numeri reali che specificano posizioni di blend. Ogni numero nella matrice indica una percentuale della distanza tra il limite iniziale e il limite finale e si trova nell'intervallo compreso tra 0,0 e 1,0, dove 0,0 indica il limite iniziale della sfumatura e 1,0 indica il limite finale. È necessario specificare almeno due posizioni: la prima posizione, che è sempre 0,0f, e l'ultima posizione, che è sempre 1,0f. In caso contrario, il comportamento non è definito. Una posizione di fusione compresa tra 0,0 e 1.0 indica una linea, parallela alle linee di limite, ovvero una determinata frazione della distanza dal limite iniziale al limite finale. Ad esempio, una posizione di blend pari a 0,7 indica la linea che corrisponde al 70% della distanza dal limite iniziale al limite finale. Il colore è costante su linee parallele alle linee di limite.

[in] count

Tipo: INT

Intero che specifica il numero di elementi nella matrice blendFactors . Si tratta dello stesso numero di elementi nella matrice blendPositions . Il fattore di blend in corrispondenza di un determinato indice di matrice corrisponde alla posizione di blend in corrispondenza dello stesso indice di matrice.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

Un oggetto LinearGradientBrush ha due limiti. Quando si riempie un'area con un pennello sfumatura lineare, il colore viene modificato gradualmente man mano che si passa dal limite iniziale al limite finale. Per impostazione predefinita, il colore è correlato in modo lineare alla distanza, ma è possibile personalizzare la relazione tra colore e distanza chiamando il metodo LinearGradientBrush::SetBlend .

Esempio

L'esempio seguente crea un pennello sfumatura lineare, imposta una miscela personalizzata e usa il pennello per riempire un rettangolo.

VOID Example_SetBlend(HDC hdc)
{
   Graphics myGraphics(hdc);

   REAL factors[4] = {0.0f, 0.4f, 0.6f, 1.0f};
   REAL positions[4] = {0.0f, 0.2f, 0.8f, 1.0f};
   Rect rect(0, 0, 100, 50);

   LinearGradientBrush linGrBrush(
      rect,
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 0, 255),  // blue
      LinearGradientModeHorizontal);

   linGrBrush.SetBlend(factors, positions, 4);
   myGraphics.FillRectangle(&linGrBrush, rect);
}

Requisiti

   
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusbrush.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Pennelli e forme piene

Color

Creazione di una sfumatura lineare

Riempimento di una forma con sfumatura di colore

LinearGradientBrush

LinearGradientBrush::GetBlend

Rect