有志者 事竟成

天行健,君子以自强不息,地势坤,君子以厚德载物。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

这段代码的目的就是要实现将jbq.png这个图片通过双缓冲显示到我们的FOrm上,但是运行后确只显示黑色的背景,大侠们看看是什么原因??另外这段代码参杂了GDI和GDI+,有谁知道怎么用纯GDI写一下?大家不妨发表一下意见??  
            IntPtr hdc = this.CreateGraphics().GetHdc();//得到窗体的句柄
            Bitmap menbitmap = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);//创建内存画布
            Graphics g = Graphics.FromImage(menbitmap);
            IntPtr menbitmaphdc = g.GetHdc();//得到内存画布的句柄

            Image myBitmap = new Bitmap(@"D:\jbq.png");//生成一个图片实例
            Graphics m = Graphics.FromImage(myBitmap);
            IntPtr myBitmaphdc = m.GetHdc();//得到图片的句柄

            SelectObject(menbitmaphdc, myBitmaphdc);//将图片选入内存画布
            SelectObject(hdc, menbitmaphdc);//将内存画布选入窗体句柄
            BitBlt(menbitmaphdc, 0, 0, 16, 16, myBitmaphdc, 0, 0, SRCCOPY);//将图片贴到内存画布
            BitBlt(hdc, 0, 0, this.ClientSize.Width, this.ClientSize.Height, menbitmaphdc,
0, 0, SRCCOPY);//将内存画布贴到窗体上            
            DeleteObject(myBitmaphdc);