Функция ExtFloodFill

Declare Function ExtFloodFill Lib "gdi32.dll" (ByVal hdc As Long, ByVal nXStart As Long, ByVal nYStart As Long, ByVal crColor As Long, ByVal fuFillType As Long) As Long

Платформа

ExtFloodFill позволяет залить сплошную область устройства,начинающуюся в точке с координатами(x,y) цветом,определенном параметром crColor и используя выбранную кисть.

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

hdc
Дескриптор контекста устройства,на котором будет происходить заливка.
nXStart
Координата x точки начала заливки.
nYStart
Координата y точки начала заливки.
crColor
Значение RGB ,определяющее цвет заливки. Это свойство также зависит от флага fuFillType.
fuFillType
Флаги.определяющие тип заливки:
FLOODFILLBORDER
Заливка области цветом crColor.Точка(x,y) должна находиться в пределах закрашиваемой области. Заливка охватит поверхность любого цвета в пределах области, которые не имеют цвета crColor.
FLOODFILLSURFACE
Заливка от начальной точки во всех направлениях до достижении со цветом crColor. Граница заливки составлена из любого цвета, который не идентичен crColor.

Константы

Const FLOODFILLBORDER = 0
Const FLOODFILLSURFACE = 1

Пример

' Рисуем сплошной зеленый эллипс на форме Form1 и заливаем
' область  диагонально заштрихованной синей кистью.
Dim hPen As Long, hBrush As Long  ' дескрипторы пера и кисти
Dim hOldPen As Long, hOldBrush As Long  ' дескрипторы к ранее выбранным объектам
Dim retval As Long  ' возвращаемое значение

' создаем сплошное зеленое перо шириной в один пиксел
hPen = CreatePen(PS_SOLID, 0, RGB(0, 255, 0))
' Выбераем его для использования в Form1, отмечая предыдущее перо.
hOldPen = SelectObject(Form1.hDC, hPen)
' Создаем синюю  диагонально заштрихованную кисть.
hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Выбераем ее для использования в Form1, отмечая предыдущую кисть.
hOldBrush = SelectObject(Form1.hDC, hBrush)

' Рисуем эллипс с ограничивающим прямоугольником (100,150)-(350, 350)
retval = Ellipse(Form1.hDC, 100, 150, 350, 350)
' Заливаем  эллипс (используем зеленую границу)
' начиная с точки (125,125) внутри эллипса.
retval = ExtFloodFill(Form1.hDC, 125, 125, RGB(0, 255, 0), FLOODFILLBORDER)

' Восстанавливаем старые перо и кисть.
retval = SelectObject(Form1.hDC, hOldPen)
retval = SelectObject(Form1.hDC, hOldBrush)
' Удаляем созданные кисть и перо для освобождения ресурсов.
retval = DeleteObject(hPen)
retval = DeleteObject(hBrush)

Категория
Графика

В начало.