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();
}
可是会出现屏幕闪烁问题,
于是我采用内存绘图的方式来进行:
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();
}
相关文章推荐
- VC的内存绘图防止屏幕闪烁技术的实现
- VC的内存绘图防止屏幕闪烁技术的实现
- VC的内存绘图防止屏幕闪烁技术的实现
- 关于内存DC绘图防止屏幕闪烁
- VC++绘图时,利用双缓冲解决屏幕闪烁
- 双缓冲解决VC++绘图时屏幕闪烁
- 在使用VC进行绘图时,屏幕闪烁问题
- VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
- 关于内存DC绘图防止屏幕闪烁说明(亦即双缓存技术) .
- VC++绘图时,利用双缓冲解决屏幕闪烁 转载
- 关于内存DC绘图防止屏幕闪烁说明
- 关于内存DC绘图防止屏幕闪烁说明
- VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
- 关于内存DC绘图防止屏幕闪烁说明
- [转] vc绘图时如何消除闪烁
- VC绘制控件如何防止闪烁
- VC双画布消除屏幕闪烁实例详解
- C# 在PictureBox 中绘图防止闪烁的办法
- VC防止窗口和控件闪烁的方法
- VC无闪烁刷屏技术的实现---经验总结之防止窗口闪烁的方法