您的位置:首页 > 其它

VC绘图防止屏幕闪烁

2010-07-12 14:48 148 查看
我想在view里面显示图像的同时,又能进行GDI绘图。

可是会出现屏幕闪烁问题,

于是我采用内存绘图的方式来进行:

1.在view类头文件中定义:

CDC m_dcCompatible;

 

2.在初始绘图的时候,将图像数据拷贝到内存DC中:

CClientDC dc(this);

if (!m_dcCompatible.m_hDC)
{
   m_dcCompatible.CreateCompatibleDC(&dc);
   CRect rect;
   GetClientRect(&rect);
   CBitmap bitmap;
   bitmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
   pDoc->m_dcCompatible.SelectObject(&bitmap);
   pDoc->m_dcCompatible.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);//这是显示代码
}

3.在OnDraw里面就可以用pDC进行GDI绘图操作了,屏幕不会闪烁。

4.在析构函数里面,将m_dcCompatible释放掉。

if (m_dcCompatible.m_hDC)

{
   m_dcCompatible.DeleteDC();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: