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 и используя выбранную кисть.
' Рисуем сплошной зеленый эллипс на форме 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)