Функция GradientFill (wingdi.h)
Функция GradientFill заполняет прямоугольники и треугольники.
Синтаксис
BOOL GradientFill(
[in] HDC hdc,
[in] PTRIVERTEX pVertex,
[in] ULONG nVertex,
[in] PVOID pMesh,
[in] ULONG nMesh,
[in] ULONG ulMode
);
Параметры
[in] hdc
Дескриптор контекста целевого устройства.
[in] pVertex
Указатель на массив структур TRIVERTEX , каждый из которых определяет вершину.
[in] nVertex
Число вершин в pVertex.
[in] pMesh
Массив GRADIENT_TRIANGLE структур в режиме треугольника или массив GRADIENT_RECT структур в режиме прямоугольника.
[in] nMesh
Количество элементов (треугольников или прямоугольников) в pMesh.
[in] ulMode
Режим градиентной заливки. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
В этом режиме прямоугольник описывается двумя конечными точками. Прямоугольник определяется как постоянный цвет (заданный структурой TRIVERTEX ) для левого и правого краев. GDI интерполирует цвет слева на правый край и заполняет внутреннюю границу. |
|
В этом режиме прямоугольник описывается двумя конечными точками. Прямоугольник имеет постоянный цвет (заданный структурой TRIVERTEX ) для верхнего и нижнего краев. GDI интерполирует цвет от верхнего до нижнего края и заполняет внутреннюю часть. |
|
В этом режиме массив структур TRIVERTEX передается в GDI вместе со списком индексов массива, описывающих отдельные треугольники. GDI выполняет линейную интерполяцию между вершинами треугольника и заполняет внутреннюю структуру. Рисование выполняется непосредственно в режимах 24 и 32 bpp. Дизеринг выполняется в режиме 16, 8, 4 и 1 bpp. |
Возвращаемое значение
Если функция выполняется успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE.
Комментарии
Чтобы добавить гладкое заливку треугольника, вызовите функцию GradientFill с тремя конечными точками треугольника. GDI линейная интерполяция и заполнение треугольника. Ниже приведены выходные данные затенения треугольника.
Чтобы добавить плавное заливку прямоугольника, вызовите GradientFill с левой и нижней правой координатами прямоугольника. При рисовании прямоугольника используются два режима заливки. В горизонтальном режиме прямоугольник затеняется слева направо. В вертикальном режиме прямоугольник затеняется сверху вниз. Ниже приведены выходные данные двух затеняемых прямоугольников : один в горизонтальном режиме, другой в вертикальном режиме: . Функция GradientFill использует метод сетки для указания конечных точек объекта для рисования. Все вершины передаются в GradientFill в массиве pVertex . Параметр pMesh указывает, как эти вершины соединены для формирования объекта . При заполнении прямоугольника pMesh указывает на массив GRADIENT_RECT структур. Каждая структура GRADIENT_RECT определяет индекс двух вершин в массиве pVertex . Эти две вершины образуют верхнюю левую и нижнюю правую границы одного прямоугольника.В случае заполнения треугольника pMesh указывает на массив GRADIENT_TRIANGLE структур. Каждая GRADIENT_TRIANGLE структура задает индекс трех вершин в массиве pVertex . Эти три вершины образуют один треугольник.
Чтобы упростить аппаратное ускорение, эта процедура не обязательно должна быть идеальной в пикселях внутри треугольника.
Обратите внимание, что GradientFill не использует альфа-член структуры TRIVERTEX . Чтобы использовать GradientFill с прозрачностью, вызовите GradientFill, а затем вызовите AlphaBlend с нужными значениями для альфа-канала каждой вершины.
Дополнительные сведения см. в разделах Гладкое заливка, Рисование затеняемого треугольника и Рисование затенения прямоугольника.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wingdi.h (включая Windows.h) |
Библиотека | Msimg32.lib |
DLL | Msimg32.dll |