作者共发了6篇帖子。 字体大小:较小 - 100% (默认)▼  内容转换:不转换▼
 
点击 回复
507 5
【用法】ExtFloodFill顏色填充函数的用法
一派护法 十九级
1楼 发表于:2016-7-7 23:27
【FLOODFILLBORDER模式】
// 设置线条颜色为红色
SelectObject(hdc, GetStockObject(DC_PEN));
SetDCPenColor(hdc, RGB(255, 0, 0));
// 画三条线
MoveToEx(hdc, 50, 50, NULL);
LineTo(hdc, 400, 130);
MoveToEx(hdc, 380, 50, NULL);
LineTo(hdc, 240, 540);
MoveToEx(hdc, 260, 510, NULL);
LineTo(hdc, 60, 40);
// 设置填充颜色为青色
SelectObject(hdc, GetStockObject(DC_BRUSH));
SetDCBrushColor(hdc, RGB(0, 255, 255));
// 填充
ExtFloodFill(hdc, 200, 200, GetDCPenColor(hdc), FLOODFILLBORDER);

一派护法 十九级
2楼 发表于:2016-7-7 23:29
FLOODFILLBORDER模式是根据边框颜色填充。边框的颜色必须为参数4指定的颜色。如果边框不是封闭的,或者不是由一种颜色组成的,那么颜色就会填满整个客户区。
一派护法 十九级
3楼 发表于:2016-7-7 23:31
【FLOODFILLSURFACE模式】
// 设置线条颜色为红色
SelectObject(hdc, GetStockObject(DC_PEN));
SetDCPenColor(hdc, RGB(255, 0, 0));
// 画三条线
MoveToEx(hdc, 50, 50, NULL);
LineTo(hdc, 400, 130);
MoveToEx(hdc, 380, 50, NULL);
LineTo(hdc, 240, 540);
SetDCPenColor(hdc, RGB(0, 0, 255)); // 指定第三条线为蓝色
MoveToEx(hdc, 260, 510, NULL);
LineTo(hdc, 60, 40);
// 设置填充颜色为青色
SelectObject(hdc, GetStockObject(DC_BRUSH));
SetDCBrushColor(hdc, RGB(0, 255, 255));
// 填充
ExtFloodFill(hdc, 200, 200, GetPixel(hdc, 200, 200), FLOODFILLSURFACE);


一派护法 十九级
4楼 发表于:2016-7-7 23:32
FLOODFILLSURFACE模式与“画图”中的“喷枪”工具的效果完全相同。参数4为指定点的颜色,GetPixel函数可以获取指定点的当前颜色。
一派护法 十九级
5楼 发表于:2016-7-7 23:35

FloodFill函数只有4个参数,相当于调用ExtFloodFill函数并使用FLOODFILLBORDER模式(第一种模式)。

但是这个函数仅仅是为16位的Windows系统所保留的,所以不建议使用此函数。

一派护法 十九级
6楼 发表于:2016-7-7 23:36

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:507 回复数:5
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-7-7 23:36
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。