关于C#中适用BITBLT的问题...
最近在研究GDI+
在移动一张贴图的时候发现.drawimage()很卡..
后来用了双缓冲,感觉好多了,但还是觉得有点慢..
请问怎么使用bitblt把一张图绘到另外一张图中..
弄了好久都找不到可以参考的C#源码...压力大
P.s. 源代码在此,如果有可以改进的地方希望指出,谢谢
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); //默认启动双缓冲 this.SetStyle(ControlStyles.DoubleBuffer, true); this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.ResizeRedraw, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. haha = new Bitmap(panel1.Width, panel1.Height); g = Graphics.FromImage(haha); pang = panel1.CreateGraphics(); } Graphics g; int x = 0; Image haha; Graphics pang;//panel1 private void timer1_Tick(object sender, EventArgs e) { x += 3; timer1.Interval = 1; Invalidate(); Draw(); } private void Draw() { using (Graphics g = Graphics.FromImage(haha)) { g.Clear(Color.White); g.DrawImage(Properties.Resources._2, -x, 100); g.DrawImage(Properties.Resources._2, x, 100); g.DrawImage(Properties.Resources._2, x, 0); g.DrawImage(Properties.Resources._2, -x, -x); g.Dispose(); } } protected override void OnPaint(PaintEventArgs e) { Draw(); pang.DrawImage(haha, Point.Empty); } }}