Функция ExtFloodFill

Declare Function ExtFloodFill Lib "gdi32" (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 и используя выбранную кисть.

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

Пример

' Рисуем сплошной зеленый эллипс на форме 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)

Категория

Графика