Поделиться через


Функция GdiGradientFill (wingdi.h)

Функция GdiGradientFill заполняет прямоугольные и треугольные структуры.

Синтаксис

BOOL GdiGradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nCount,
  [in] ULONG      ulMode
);

Параметры

[in] hdc

Дескриптор контекста целевого устройства.

[in] pVertex

Указатель на массив структур TRIVERTEX , каждая из которых определяет вершину треугольника.

[in] nVertex

Число вершин в pVertex.

[in] pMesh

Массив GRADIENT_TRIANGLE структур в режиме треугольника или массив GRADIENT_RECT структур в режиме прямоугольника.

[in] nCount

Количество элементов (треугольников или прямоугольников) в pMesh.

[in] ulMode

Режим градиентной заливки. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
GRADIENT_FILL_RECT_H
В этом режиме две конечные точки описывают прямоугольник. Прямоугольник определяется как постоянный цвет (задается структурой TRIVERTEX ) для левого и правого краев. GDI интерполирует цвет от левого к правому краю и заполняет внутреннюю область.
GRADIENT_FILL_RECT_V
В этом режиме две конечные точки описывают прямоугольник. Прямоугольник определяется как постоянный цвет (задается структурой TRIVERTEX ) для верхнего и нижнего краев. GDI интерполирует цвет от верхнего до нижнего края и заполняет внутреннюю часть.
GRADIENT_FILL_TRIANGLE
В этом режиме массив структур TRIVERTEX передается в GDI вместе со списком индексов массива, описывающих отдельные треугольники. GDI выполняет линейную интерполяцию между вершинами треугольника и заполняет внутреннюю область. Рисование выполняется непосредственно в режимах 24 и 32 кпп. Dithering выполняется в режиме 16, 8, 4 и 1 bpp.

Возвращаемое значение

Если функция выполнена успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE.

Комментарии

Примечание Эта функция аналогична функции GradientFill.
 
Чтобы добавить плавное заливку в треугольник, вызовите функцию GdiGradientFill с тремя конечными точками треугольника. GDI линейная интерполяция и заполнение треугольника. Ниже приведен результат рисования затеняемого треугольника. Иллюстрация треугольника, который заполняется от оранжевого цвета в верхней точке до пурпурной в нижней строке Чтобы добавить плавное заливку в прямоугольник, вызовите GdiGradientFill с координатами верхнего левого и нижнего правого прямоугольника. При рисовании прямоугольника используются два режима заливки. В горизонтальном режиме прямоугольник затеняется слева направо. В вертикальном режиме прямоугольник затеняется сверху вниз. Ниже приведены выходные данные рисования двух затеняемых прямоугольников : один в горизонтальном режиме, другой в вертикальном режиме. Иллюстрация прямоугольника, который затеняется от темного с левой стороны до светлого с правой стороны Иллюстрация прямоугольника, который затеняется от темного сверху к светлому снизу . Функция GdiGradientFill использует метод сетки для указания конечных точек объекта для рисования. Все вершины передаются в GdiGradientFill в массиве pVertex . Параметр pMesh указывает, как эти вершины соединены для формирования объекта . При заполнении прямоугольника pMesh указывает на массив GRADIENT_RECT структур. Каждая GRADIENT_RECT структура задает индекс двух вершин в массиве pVertex . Эти две вершины образуют верхнюю левую и нижнюю правая границы одного прямоугольника.

В случае заполнения треугольника pMesh указывает на массив GRADIENT_TRIANGLE структур. Каждая GRADIENT_TRIANGLE структура задает индекс трех вершин в массиве pVertex . Эти три вершины образуют один треугольник.

Чтобы упростить аппаратное ускорение, эта процедура не обязательно должна быть идеальной в пикселях внутри треугольника.

Обратите внимание, что В GdiGradientFill не используется альфа-элемент структуры TRIVERTEX . Чтобы использовать GdiGradientFill с прозрачностью, вызовите GdiGradientFill , а затем вызовите GdiAlphaBlend с нужными значениями для альфа-канала каждой вершины.

Дополнительные сведения см. в разделах Гладкое заливка, Рисование затеняемого треугольника и Рисование затеняемого прямоугольника.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

Функции точечных рисунков

Общие сведения о точечных изображениях

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

ТРИВЕРТЕКС