Страница: 1 |
Как сделать обыкновенную заливку в любой области Пробовал функцию flodfill или extflodfill обе глючат.
FillRect попробуй по подробнее о fillrect'е - синтаксис итд Взято из справочника Русского проекта: Платформа: Win 95/98, Win NT FillRect заполняет прямоугольную область на устройстве, используя указанную кисть. Граница прямоугольной области не рисуется, и основание и правые грани данного прямоугольника не заполняются (они не являются частью внутренней области прямоугольника). Обратите внимание, что эта функция использует кисть, передаваемой функции, так что нет необходимости использовать SelectObject для выбора устройством кисти. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0. Пример: 'заштрихованную кисть, чтобы заполнить прямоугольную ' область на окне Form1. Прямоугольная область имеет 'координаты (25,35) - (200,170). Dim hbrush As Long ' Получаем дескриптор синей заштрихованной кисти Dim winrect As RECT ' Прямоугольная область для заполнения Dim retval As Long ' возвращаемое значение ' устанавливаем координаты прямоугольника r retval = SetRect(winrect, 25, 35, 200, 170) ' теперь winrect = (25,35)-(200,170) ' создаем синюю диагонально - перекрестную заштрихованную кисть hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255)) ' Заполним желаемую прямоугольную область retval = FillRect(Form1.hDC, winrect, hbrush) ' Удалим кисть, которую мы создавали, чтобы освободить ресурсы retval = DeleteObject(hbrush) Схожие функции: FillRgn, FrameRect Мне нужна заливкат замнкнутой области (как в paint)и так чтобы эта функция работала в Windows Me, как не странно ни где я такую в инете не видел Ну тогда вперед! просматривать пиксель и в зависимости от его цвета, менять цвет его и последующих аль нет... те не функция нужна, алгоритм тебе необходим... А если как в паинте - дык я несколько таких редакторов изображений на VB видел... SDK: The FloodFill function fills an area of the display surface with the current brush. The area is assumed to be bounded as specified by the crFill parameter. Note The FloodFill function is included only for compatibility with 16-bit versions of Windows. Applications should use the ExtFloodFill function with FLOODFILLBORDER specified. If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. Windows NT/2000/XP: To get extended error information, call The following are reasons this function might fail: Windows NT/2000/XP: Included in Windows NT 3.1 and later. Страница: 1 |
Вопрос: Заливка поможите plz
Добавлено: 04.05.04 14:36
Автор вопроса: Миx
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 04.05.04 15:39
Номер ответа: 2
Автор ответа:
Миx
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 04.05.04 15:43
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 04.05.04 16:54
Функция FillRect
Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
' Используем синюю диагонально - перекрестную
Номер ответа: 4
Автор ответа:
Миx
Вопросов: 1
Ответов: 2
Профиль | | #4
Добавлено: 04.05.04 19:49
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 04.05.04 23:52
Номер ответа: 6
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #6
Добавлено: 05.05.04 14:28
FloodFill
BOOL FloodFill( HDC hdc, // handle to DC int nXStart, // starting x-coordinate int nYStart, // starting y-coordinate COLORREF crFill // fill color);
Parameters
Return Values
Remarks
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Wingdi.h; include Windows.h.
Library: Use Gdi32.lib.