如何解决绘图过程中的闪烁?

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

在VC中进行绘图过程处理时,如果图形刷新很快,

经常出现图形闪烁的现象。利用先在内存绘制,然后

拷贝到屏幕的办法可以消除屏幕闪烁,具体的方法是先在内存

中创建一个与设备兼容的内存设备上下文,也就是开辟一快内

存区来作为显示区域,然后在这个内存区进行绘制图形。在绘制完成后利用

BitBlt函数把内存的图形直接拷贝到屏幕上即可。

具体的代码实现为:

(1)创建内存区域

CDC* pMem=new CDC;

CBitmap* pBmp=new CBitmap;

CBitmap* pOldBmp;

CDC* pDC=GetDC();

CRect rectTemp;为绘图区域

pMem->CreateCompatibleDC(pDC);

pBmp->CreateCompatibleBitmap(pDC, rectTemp.Width(), rectTemp.Height());

pOldBmp=pMem->SelectObject(pBmp);

(2)进行图形绘制

pMem->LineTo(...); 进行绘图处理

(3)拷贝到屏幕

pDC->BitBlt(rectTemp.left,rectTemp.top,rectTemp.Width(),rectTemp.Height(),pMem,0,0,SRCCOPY);

pMem->SelectObject(pOldBmp);

pBmp->DeleteObject() ;

pMem->DeleteDC();

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
>>返回首页<<
推荐阅读
 
 
频道精选
© 2005- 王朝网络 版权所有