|
主题: 填充功能的实现
|
 idea
职务:普通成员
等级:1
金币:1.0
发贴:289
注册:2000/10/17 8:36:26
|
#12002/8/29 8:49:09
--winapi.u32 先画一个黑线白方块。 方块上放一热区。 按热区执行一下代码:
hdc:=GetDC( WindowHandle) brush:=CreateSolidBrush(RGB(255,0,0)) SelectObject(hdc, brush) c:="RGB(0,0,0)" ExtFloodFill(hdc, CursorX, CursorY, c,0)
|
 魔岩
职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
|
#22002/8/29 8:59:51
测试通过了吗?2000系统下?
|
 idea
职务:普通成员
等级:1
金币:1.0
发贴:289
注册:2000/10/17 8:36:26
|
|
 魔岩
职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
|
#42002/8/29 9:26:16
2K下什么反应也没有噎!
|
 idea
职务:普通成员
等级:1
金币:1.0
发贴:289
注册:2000/10/17 8:36:26
|
#52002/8/29 10:26:28
2k下: ExtFloodFill(hdc, CursorX, CursorY, c,0) 返回错误 难道2k下 ExtFloodFill有变?
|
 魔岩
职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
|
#62002/8/29 10:29:30
是啊。。98和2K的API函数还是有区别的。。
|
 idea
职务:普通成员
等级:1
金币:1.0
发贴:289
注册:2000/10/17 8:36:26
|
#72002/8/29 10:35:04
函数功能:该函数将使用当前刷子填充显示表面区域。
函数原型:BOOL ExtFloodFill(HDC hdc,int nXStart,int nYStart,COLORREF crColor,UINT fuFillType);
参数:
hdc:设备环境句柄。
nXSTart:指定要开始填充处的逻辑X轴坐标。
nYStart:指定要开始填充处的逻辑Y轴坐标。
crColor:指定要填充的边界或区域的颜色。crColor的具体解释要根据参数fuFillType的值而定。
fuFillType:指定要进行的填充操作类型。该参数必须是下列值之一,这些值的含义如下:
FLOODFILLBORDER:表示填充区域是由crColor参数指定的颜色包围起来的部分。这种形式与FloodFill函数执行的填充类型一样。
FLOODFILLSURFACE:表示填充区域是由crColor指定的颜色来定义。填充操作向四周伸展,直到遇到这种颜色为止。这种操作式样对于带有多种颜色边界的填充区域有用。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:下列原因可能引起函数执行失败:
填充无法完成。
指定的像素点有着参数crColor(如果要求FLOODFILLBORDER操作样式)指定的边界颜色(即颜色相同)。
指定的像素点没有参数crColor(如果要求FLOODFILLSURFACE操作样式)指定的颜色。
该点在剪辑区之外――也就是说在设备中不可见。
如果fuFillType参数为FLOODFILLBORDER,那么系统认为要填充的区域是完全被参数crColor指定的颜色包围起来的。该函数从参数nXStart和nYStart指定的点开始填充,向四周继续,直到遇到边界为止。
如果fuFillType是FLOODRILLSURFACE,那么系统就认为要填充的区域是单颜色的,函数从nXStart和nYStart两个参数指定的点开始填充区域,并向四周延伸,对包含参数crColor指定颜色的所有相邻区域进行填充。
只有支持光栅显示操作的设备和内存设备环境才支持ExtFloodFill函数。为了确定设备是否支持该技术,可使用函数GetDeviceCaps。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h;库文件:gdi32.lib。
大家研究研究......
|
 davichiu
职务:普通成员
等级:1
金币:0.0
发贴:21
注册:2002/8/23 10:29:26
|
#82002/8/29 11:01:13
請問idea版主,
對於BOOL ExtFloodFill(HDC hdc,int nXStart,int nYStart,COLORREF crColor,UINT fuFillType)的描述如此清楚,請問你是參考那裏呢???
我看winapi.u32中的指令時 它都僅寫請參考windows SDK是何意思??
|
 idea
职务:普通成员
等级:1
金币:1.0
发贴:289
注册:2000/10/17 8:36:26
|
#92002/8/29 11:10:29
winapi.u32说的不错 台湾的兄弟,你可以到www.microsoft.com 搜索关键字:ExtFloodFill 就有答案。
最新进展:ExtFloodFill用VB做在2k下用,成功。 待我仔细研究......
|
 魔岩
职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
|
|
 davichiu
职务:普通成员
等级:1
金币:0.0
发贴:21
注册:2002/8/23 10:29:26
|
|