如何MFC里直接把一个width×height的unsigned char数组绘制到屏幕
近来做一个模拟毛笔的项目,老大要求必须用纯C来做绘制。我是这样做的:
屏幕大小为w×h,定义一个unsigned char数组m_buffer = new unsigned char[n];绘制任何图形都在这个数组中直接操作。但用鼠标在屏幕绘制的时候发觉一顿一顿的,我的代码是这样的:
CClientDC dc(this);
Graphics graphics( dc.m_hDC );
Bitmap *image1 = Bitmap::FromBITMAPINFO(br,m_buffer);
graphics.DrawImage(image1,PointF(0,0));
delete image1;
ReleaseDC(&dc);
鼠标每次OnMouseMove都需要把这个m_buffer 转化成一个Bitmap ,然后绘制到屏幕,开销是在太大。
有没有办法直接把m_buffer绘制到屏幕(不转化Bitmap ),或者每次只绘制m_buffer的一小部分内容,因为每次鼠标采样实际上只影响顶多4、5个像素的范围。