获取某个窗体或控件的图像拷贝!

最近正写一个图像控件,要求获取该控件显示的内容并保存为一个位图文件。
具体实现如下:
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
private static extern long BitBlt (IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);

public Bitmap GetCurrentImage()
{
Graphics g 
= this.CreateGraphics();
Bitmap bitmap 
= new Bitmap(this.Width,this.Height,g);
Graphics memg 
= Graphics.FromImage(bitmap);
System.IntPtr dc1 
= g.GetHdc();
System.IntPtr dc2 
= memg.GetHdc();
BitBlt(dc2, 
00this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0013369376);
g.ReleaseHdc(dc1);
memg.ReleaseHdc(dc2);
memg.Dispose();
g.Dispose();
return bitmap;
}
步骤如下:
1、获取该控件的Graphics对象
2、用此Graphics对象创建一个新位图。
3、获取新位图的Graphics对象。
4、将控件的Graphics对象内容拷贝到位图的Graphics对象。

posted on 2005-05-11 14:39  ONLY-YOU  阅读(1133)  评论(0编辑  收藏  举报

导航