读书人

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

发布时间: 2012-03-18 13:55:39 作者: rapoo

双缓冲出现的问题(一个大黑块)
应用的是双缓冲技术,代码也和网上的差不多,但是显示的时候却是显示一个大黑块,到底是什么原因呢??
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

读书人网 >VC/MFC

热点推荐