图像双缓冲问题
在开发程序时候出现这种情况:前台画面变化时,需要重画背景,以抹去上次所画的前台画面,但是这样速度快的时候,整个画面会闪烁的很厉害。据说双图像缓冲技术可以消除这种闪烁,具体是如何实现的呢?
若能解决,小弟不胜感激
问题点数:40、回复次数:6Top
1 楼seu07201213(【_】〖汪洋中的一片叶子〗≈^︵^≈)回复于 2006-11-02 11:00:03 得分 0
网上搜索下 用VC实现双缓冲技术
我blog上也写过,可惜现在打不开,csdn blog有点差劲
http://blog.csdn.net/seu07201213/Top
2 楼snowforest88(冰雪森林)回复于 2006-11-02 11:06:17 得分 0
添加消息 WM_ERASEBKGROUND 添加代码Top
3 楼breakind(冰舞,把练街舞的精神拿来编程,必有所成.)回复于 2006-11-02 14:54:38 得分 0
CDC * dc;
CBitmap m_bmp;
CDC m_compatdc;
CRect rect;
this->GetClientRect(rect);
CDC *dc=this->GetDC();
if(!m_compatdc.CreateCompatibleDC(NULL))
{
::PostQuitMessage(0);
}
m_bmp.CreateCompatibleBitmap(dc, rect.Width(), rect.Height());
m_compatdc.SelectObject( &m_bmp);
你的绘图代码
dc->BitBlt(rect.left, rect.top,rect.Width(), rect.Height(), &m_compatdc, 0, 0, SRCCOPY);
m_bmp.DeleteObject();
this->ReleaseDC(dc);
Top
4 楼zjp2k()回复于 2006-11-20 11:06:24 得分 0
上面两位回贴都是正确的.
Top
5 楼mrxwh(大徐)回复于 2006-11-20 15:15:47 得分 0
可以使用cmemdc代码类,对双缓冲区的操作进行了封装Top
6 楼LiChenYue(卐)(李忱悦)(怎堪蔑拒?鳄泪横流㊣暗恋未遂!独孤求偶)(卐)回复于 2006-11-20 15:20:46 得分 0
学习并蹭分ingTop




