Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > есть ли функции заливки цветом в WinApi? |
Автор: victor79 13.1.2013, 15:04 |
У меня задача отрисовки плоскостей - контуры и их заливка. Контуры из произвольной последовательности прямых и секторов окружности. Про контуры понятно - их можно последовательно отрисовать LineTo и Arc (кажется). А вот есть ли функции 1. заливки фигуры по контуру (на белом фоне черным контур - и залить от указанной принадлежащей точке). 2. заливка всего рисунка по указанному цвету (весь белый заменить на указанный brush) |
Автор: artsb 13.1.2013, 20:03 |
http://msdn.microsoft.com/en-us/library/windows/desktop/dd162814%28v=vs.85%29.aspx и остальные функции из раздела http://msdn.microsoft.com/en-us/library/windows/desktop/dd162715%28v=vs.85%29.aspx. |
Автор: artsb 13.1.2013, 20:28 |
Вот ещё интересная функция - http://msdn.microsoft.com/ru-ru/library/windows/desktop/dd162726%28v=vs.85%29.aspx |
Автор: YDean 15.1.2013, 18:43 |
BeginPath EndPath FillPath |
Автор: victor79 16.1.2013, 05:07 | ||
FloodFill/ExtFloodFill - эта мне подошла, спасибо. про BeginPath-EndPath еще не читал, но обязательно прочитаю, спасибо. В результате, при помощи последовательности
после на новый dc рисуем замкнытый контур любой конфигурации, и заливаем внешнюю часть черным цветом - получили черно-белую маску маску. (и еще раз отрисовать котур белым) нужно создать еще один dcbmp куда сначала залить весь фоном, после отрисовать нужный контур. Теперь функцией BitBlt, SRCAND + BitBlt, SRCINVERT - обрезаем и получаем нужную залитую фигуру. А теперь на экранный DC сначала маской BitBlt,SRCPAINT - зачистили место под картинку, после второй картинкой BitBlt,SRCAND - нарисовали то что нужно. Алгоритма в коде пока нету, поэтому текстовое описание))). |