代码改变世界

C# Panel控件截图

2016-03-15 10:16  孙启亮  阅读(2500)  评论(0编辑  收藏  举报
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll ")]
        private static extern bool BitBlt(
        IntPtr hdcDest, // handle to destination DC 
        int nXDest, // x-coord of destination upper-left corner 
        int nYDest, // y-coord of destination upper-left corner 
        int nWidth, // width of destination rectangle 
        int nHeight, // height of destination rectangle 
        IntPtr hdcSrc, // handle to source DC 
        int nXSrc, // x-coordinate of source upper-left corner 
        int nYSrc, // y-coordinate of source upper-left corner 
        System.Int32 dwRop // raster operation code 
        );

 

Graphics g1 = panel1.CreateGraphics(); 
            Image myImage = new Bitmap(this.panel1.Width, this.panel1.Height, g1); 
            Graphics g2 = Graphics.FromImage(myImage); 
            IntPtr dc1 = g1.GetHdc(); 
            IntPtr dc2 = g2.GetHdc(); 
            BitBlt(dc2, 0, 0, this.panel1.Width, this.panel1.Height, dc1, 0, 0, 13369376); 
            g1.ReleaseHdc(dc1); 
            g2.ReleaseHdc(dc2); 
            myImage.Save(@"NewImage.bmp ", ImageFormat.Bmp);