这段代码的目的就是要实现将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);

相关文章:

  • 2021-04-19
  • 2021-06-26
  • 2021-05-11
  • 2021-05-22
  • 2021-12-10
  • 2021-05-24
  • 2022-01-20
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2021-08-23
  • 2022-01-18
  • 2021-09-21
相关资源
相似解决方案