Método LinearGradientBrush::SetBlend (gdiplusbrush.h)
O método LinearGradientBrush::SetBlend define os fatores de mesclagem e as posições de mesclagem desse pincel de gradiente linear para criar uma mistura personalizada.
Sintaxe
Status SetBlend(
[in] const REAL *blendFactors,
[in] const REAL *blendPositions,
[in] INT count
);
Parâmetros
[in] blendFactors
Tipo: const REAL*
Ponteiro para uma matriz de números reais que especificam fatores de mesclagem. Cada número na matriz especifica uma porcentagem da cor final e deve estar no intervalo de 0,0 a 1,0.
[in] blendPositions
Tipo: const REAL*
Ponteiro para uma matriz de números reais que especificam posições de mesclagem. Cada número na matriz indica um percentual da distância entre o limite inicial e o limite final e está no intervalo de 0,0 a 1,0, em que 0,0 indica o limite inicial do gradiente e 1,0 indica o limite final. Deve haver pelo menos duas posições especificadas: a primeira posição, que é sempre 0,0f, e a última posição, que é sempre 1,0f. Caso contrário, o comportamento será indefinido. Uma posição de mesclagem entre 0,0 e 1,0 indica uma linha, paralela às linhas de limite, que é uma determinada fração da distância do limite inicial até o limite final. Por exemplo, uma posição de mesclagem de 0,7 indica a linha que é 70% da distância do limite inicial até o limite final. A cor é constante em linhas paralelas às linhas de limite.
[in] count
Tipo: INT
Inteiro que especifica o número de elementos na matriz blendFactors . Isso é o mesmo que o número de elementos na matriz blendPositions . O fator de mesclagem em um determinado índice de matriz corresponde à posição de mesclagem nesse mesmo índice de matriz.
Valor retornado
Tipo: Status
Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .
Se o método falhar, ele retornará um dos outros elementos da enumeração Status .
Comentários
Um objeto LinearGradientBrush tem dois limites. Quando você preenche uma área com um pincel de gradiente linear, a cor muda gradualmente à medida que você passa do limite inicial para o limite final. Por padrão, a cor está linearmente relacionada à distância, mas você pode personalizar a relação entre cor e distância chamando o método LinearGradientBrush::SetBlend .
Exemplos
O exemplo a seguir cria um pincel de gradiente linear, define uma mistura personalizada e usa o pincel para preencher um retângulo.
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);
}
Requisitos
Cliente mínimo com suporte | Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | gdiplusbrush.h (inclua Gdiplus.h) |
Biblioteca | Gdiplus.lib |
DLL | Gdiplus.dll |