填充闭合区域

using System.Runtime.InteropServices;
 
[DllImport(
"gdi32.dll")]
public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
[DllImport(
"gdi32.dll")]
public static extern IntPtr CreateSolidBrush(int crColor);
[DllImport(
"gdi32.dll")]
public static extern bool ExtFloodFill(IntPtr hdc, int nXStart, int nYStart,
    
int crColor, uint fuFillType);
[DllImport(
"gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
[DllImport(
"gdi32.dll")]
public static extern int GetPixel(IntPtr hdc, int x, int y);
public static uint FLOODFILLBORDER = 0;
public static uint FLOODFILLSURFACE = 1;
 
private void button1_Click(object sender, EventArgs e)
{
    Graphics vGraphics 
= Graphics.FromHwnd(Handle);
    vGraphics.DrawRectangle(Pens.Blue, 
new Rectangle(00300300));
    vGraphics.DrawRectangle(Pens.Blue, 
new Rectangle(5070300300));
    IntPtr vDC 
= vGraphics.GetHdc();
    IntPtr vBrush 
= CreateSolidBrush(ColorTranslator.ToWin32(Color.Red));
    IntPtr vPreviouseBrush 
= SelectObject(vDC, vBrush);
    ExtFloodFill(vDC, 
1010, GetPixel(vDC, 1010), FLOODFILLSURFACE);
    SelectObject(vDC, vPreviouseBrush);
    DeleteObject(vBrush);
    vGraphics.ReleaseHdc(vDC);
}



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zswang/archive/2007/05/22/1621529.aspx
posted @ 2010-03-10 17:54  槑槑  阅读(303)  评论(0编辑  收藏  举报