picture1.line (x1,y1)-(x2,y2),rgb(r,g,b),BFx1,x2,y1,y2 是方形区域的主对角线段的两端点的坐标
rgb() 你想的颜色
是这意思吗?

解决方案 »

  1.   

    用API的方法。
    在一个空的窗体上放个PictureBox,之后把下面的代码粘过去,运行它,单击窗体空白部分,看到效果。Option ExplicitPrivate Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Sub Form_Click()
        '画个圆
        Picture1.Circle (400, 400), 400, vbWhite
        
        '创建刷子
        Dim newBru As Long, re As Long
        newBru = CreateSolidBrush(vbRed)    '刷子颜色即为填充颜色
        re = SelectObject(Picture1.hdc, newBru) '选入设备场景
        
        FloodFill Picture1.hdc, 12, 12, vbWhite '填充
        
        '释放资源
        SelectObject Picture1.hdc, re
        DeleteObject newBru
    End Sub
      

  2.   

    函数功能:该函数用当前刷子填充显示区域。该区域是由参数crFill指定的值包围起来的区域。    函数原型:BOOL FloodFill(HDC hdc, int nXStart, int nYStart, COLORREF crFill);    参数:    hdc:设备环境句柄。    nXStart:指定开始填充处的逻辑X坐标。    nYstart:指定开始填充位置的逻辑Y坐标。    crFill:指定要填充的区域边界的颜色。    返回值:如果函数执行成功,则返回值为非零;如果函数执行失败,那么返回值为零。    Windows NT:若想获取更多的错误信息,请调用GetLastError函数。    备注:下列原因可能导致该函数失败:填充无法完成。给定点的颜色与crFill参数指定的边界颜色相同。给定点在当前剪辑区之外――也就是在当前设备上不可见。
      

  3.   

    谢谢大家,看来还是要用API呀......要是早知道就好了,搞得我竞赛很郁闷..... -_-;
      

  4.   


    给你一个满意的例子:http://caotang.myetang.com/temp/exfloodfill.zip