作者共發了6篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:不轉換▼
 
點擊 回復
509 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)
 

本帖信息

點擊數:509 回複數:5
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-7-7 23:36
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。