帮我一个画图的简单的问题,今天结帖!!!!!!!!!!!!!!!!!!!!(我是新手)
要实现的效果:
就是把内存区的位图数据转化为位图,然后把他画出来,我是这么做的:
//(1)初始化,我只列出部分关键的代码哦 unsigned char rgb_buf[100*40*3] ; //这个内存区呢,里面有很多位图r,g,b值,格式是bgrbgrbgrbgr.... CDC * cur_dc ; CDC * mem_dc ; CBitmap * mem_bmp ; cur_dc = GetDC() ; //获得显示设备信息 if(mem_dc != NULL) delete mem_dc ; mem_dc = new CDC ; if(mem_bmp != NULL) delete mem_bmp ; mem_bmp = new CBitmap ; mem_dc- >CreateCompatibleDC(cur_dc) ; mem_bmp- >CreateCompatibleBitmap(cur_dc, 100, 40) ; mem_dc- >SelectObject(mem_bmp) ; //(2)我要做的呢,就是读出rgb_buf的数据,把他显示到屏幕上,刚好是100*40的大小,我是这么做的 for(i = 0 ; i < 40; i++) { for(j = 0 ; j < 100 ; j++) { mem_dc- >SetPixel(j, i, RGB(rgb_buf[k],rgb_buf[k+1],rgb_buf[k+2])) ; k += 3 ; } } //以像素为 Xidth * Height大小的区域替换完毕 cur_dc- >BitBlt(0,0, img_width, img_height, mem_dc, 0,0, SRCCOPY) ;