Страница: 1 | 2 | 3 |
Вопрос: WinAPI ExtFloodFill
Добавлено: 14.03.09 13:39
Автор вопроса: diplay
BOOL ExtFloodFill(
HDC hdc, // дескриптор DC
int nXStart, // начальная x-координата
int nYStart, // начальная y-координата
COLORREF crColor, // цвет рамки или закрашиваемой области
UINT fuFillType // тип заливки
);
В функции нет параметра, каким цветом заливать, есть только цвет границ. Тогда как на VB.NET задать цвет, которым заливать?
Ответы
Всего ответов: 45
Номер ответа: 1
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #1
Добавлено: 14.03.09 14:02
В этом случае вместо ExtFloodFill использовал CreateMappedBitmap, тогда закрашивается не только контур, просто заменяется 1 цвет в изображении.
А вообще в VB.NET обычно свои танцы с бубном и использование Win32 API напрямую дотнетовцы не приветствуют.
Номер ответа: 2
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #2
Добавлено: 14.03.09 14:06
Мне не надо менять один цвет в изображении на другой, мне просто надо сделать заливку произвольной закрытой фигуры.
Так хоть сделали бы тогда нормальную дотнетовскую заливку
Номер ответа: 3
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #3
Добавлено: 14.03.09 14:07
Нашел в инете как пользоваться ExtFloodFill на vb6, а про vb.net ничего
Номер ответа: 4
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #4
Добавлено: 14.03.09 14:12
Еще нашел, что для заливки используется текущий цвет кисти, тока где мне его задать?
Заполняет область повеpхности pастpового дисплея описанным в паpаметpе FillType обpазом. Используется текущая кисть.
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 14.03.09 14:57
текущий цвет кисти.. это надо создать кисть нужного цвета и выделить ее в контексте устройства CreateBrush вроде..
Номер ответа: 6
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #6
Добавлено: 14.03.09 14:57
и SelectObject
Номер ответа: 7
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #7
Добавлено: 14.03.09 15:32
это как?
Номер ответа: 8
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #8
Добавлено: 14.03.09 15:32
"устройство" - это объект graphics?
Номер ответа: 9
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #9
Добавлено: 14.03.09 16:57
контексте устройства - DC
Номер ответа: 10
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #10
Добавлено: 14.03.09 19:25
кто те такую глупость сказал???
Form1.cs
Gdi.cs
Номер ответа: 11
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #11
Добавлено: 14.03.09 22:33
спасибо, EROS! попробую.
Номер ответа: 12
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #12
Добавлено: 14.03.09 22:53
после заливки весь фон покрывается серым и ничего потом нельзя нарисовать
Номер ответа: 13
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #13
Добавлено: 14.03.09 22:59
кое-что поправил у себя в проге, теперь рисоваит после заливки можно, но черный фон все равно превращается в серый.
Номер ответа: 14
Автор ответа:
diplay
Вопросов: 4
Ответов: 69
Профиль | | #14
Добавлено: 14.03.09 23:02
понял, в чем дело. у меня черный фон стоит у контрола, на котором я рисую. а gdi32 возвращает рисунок с серым фоном вместо прозрачного
Номер ответа: 15
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #15
Добавлено: 14.03.09 23:09
а gdi32 возвращает рисунок с серым фоном вместо прозрачного
Если ты сам не заливал фон, то Gdi ничего тебе сам не закрасит..
Возможно ты отображаешь рисунок в контроле или на форме.. а у них фон сам по себе серый(цвет формы)..
в любом случае это твой косяк..