首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

双缓冲出现的有关问题(一个大黑块)

2012-03-18 
双缓冲出现的问题(一个大黑块)应用的是双缓冲技术,代码也和网上的差不多,但是显示的时候却是显示一个大黑

双缓冲出现的问题(一个大黑块)
应用的是双缓冲技术,代码也和网上的差不多,但是显示的时候却是显示一个大黑块,到底是什么原因呢??
CPaintDC   dc(this);//用以屏幕显示的设备
CDC   dcMemory;//内存设备
CBitmap   bitmap;
if(!dc.IsPrinting())
{

dcMemory.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc,COUNT*LENGTH,COUNT*LENGTH);
dcMemory.SelectObject(&bitmap);
//下面的就是开始画图形了,我将里面的内容全部注释后还是会出现黑块,//索性就不写了..
dc.BitBlt(10,10,COUNT*LENGTH,COUNT*LENGTH,&dcMemory,0,0,SRCCOPY);
bitmap.DeleteObject();
}


[解决办法]
默认的就是大黑块,而你的画笔默认的也是黑笔,当然还是大黑块
你可以将它刷白
[解决办法]
这一句
dcMemory.SelectObject(&bitmap);
改为
CRect rcClient;
GetClientRect( rcClient )
bitmap.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
dcMemory.SelectObject(&bitmap);

[解决办法]
默认是黑的,先刷白再画
[解决办法]
闪----有没有DELETE掉以前的?
[解决办法]
刷新时候用invalidaterect

热点排行