滚动视图双缓冲
来源:互联网 发布:余文乐潮牌有淘宝店吗 编辑:程序博客网 时间:2024/05/16 03:51
void CTopoView::OnPaint()
{
CPaintDC dc(this);
dc.SetWindowOrg(scroll_x,scroll_y);
//获得剪切区域
CRect clipRect;
dc.GetClipBox(&clipRect);
//创建内存DC
CDC MemDC;
//用于画图的内存内存位图
CBitmap bitMap;
//创建与兼容的内存DC
MemDC.CreateCompatibleDC(&dc);
//创建和刷新区一样大小的内存位图
bitMap.CreateCompatibleBitMap(dc,clipRect.Width(),clipRect.Height());
CBitmap *p_oldBitMap = MemDC.SelectObject(&bitMap);
MemDC.SetWindowOrg(clipRect.left,clipRect.top);
MemDc.FillSolidRect(clipRect,dc.GetBKColor());
//画图代码,将待画图的区域和刷新区进行比较,在刷新区内进行画图,不在不画
CRect tempRect;
CRect checkRect(start_x,start_y,end_x,end_y);
if(IntersectRect(tempRect,clipRect,checkRect)){
//画图
}
dc.BitBlt(clipRect.left,clipRect.top,clipRect.Width(),clipRect.Height(),
&MemDC,clipRect.left,clipRect.top,SRCCOPY);
//资源释放
MemDC.SelectObject(p_oldBitMap);
bitMap.DeleteObject();
MemDC.DeleteDc();
}
禁止背景刷新
BOOL CTopoView::OnEraseBKGnd(CDC *pDC)
{
return true;
}
void CTopoView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CPoint point = GetScrollPosition();
m_scrollX = point.x;
m_scrollY = point.y;
Invalidate();
__super::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CTopoView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CPoint point = GetScrollPosition();
m_scrollX = point.x;
m_scrollY = point.y;
Invalidate();
__super::OnVScroll(nSBCode, nPos, pScrollBar);
}
{
CPaintDC dc(this);
dc.SetWindowOrg(scroll_x,scroll_y);
//获得剪切区域
CRect clipRect;
dc.GetClipBox(&clipRect);
//创建内存DC
CDC MemDC;
//用于画图的内存内存位图
CBitmap bitMap;
//创建与兼容的内存DC
MemDC.CreateCompatibleDC(&dc);
//创建和刷新区一样大小的内存位图
bitMap.CreateCompatibleBitMap(dc,clipRect.Width(),clipRect.Height());
CBitmap *p_oldBitMap = MemDC.SelectObject(&bitMap);
MemDC.SetWindowOrg(clipRect.left,clipRect.top);
MemDc.FillSolidRect(clipRect,dc.GetBKColor());
//画图代码,将待画图的区域和刷新区进行比较,在刷新区内进行画图,不在不画
CRect tempRect;
CRect checkRect(start_x,start_y,end_x,end_y);
if(IntersectRect(tempRect,clipRect,checkRect)){
//画图
}
dc.BitBlt(clipRect.left,clipRect.top,clipRect.Width(),clipRect.Height(),
&MemDC,clipRect.left,clipRect.top,SRCCOPY);
//资源释放
MemDC.SelectObject(p_oldBitMap);
bitMap.DeleteObject();
MemDC.DeleteDc();
}
禁止背景刷新
BOOL CTopoView::OnEraseBKGnd(CDC *pDC)
{
return true;
}
void CTopoView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CPoint point = GetScrollPosition();
m_scrollX = point.x;
m_scrollY = point.y;
Invalidate();
__super::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CTopoView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CPoint point = GetScrollPosition();
m_scrollX = point.x;
m_scrollY = point.y;
Invalidate();
__super::OnVScroll(nSBCode, nPos, pScrollBar);
}
- 滚动视图双缓冲
- MFC--滚动视图窗口(CScrollView)使用双缓冲问题
- 滚动视图窗口(CScrollView)使用双缓冲问题
- 双缓冲刷新视图
- 【旧资料整理】MFC--滚动视图窗口(CScrollView)使用双缓冲问题
- 双缓冲实现滚动文本
- 双缓冲实现滚动文本
- 文本框滚动缓冲效果
- 滚动视图
- 滚动视图
- 滚动视图
- 滚动视图
- UI-滚动视图(滚动视图)
- iphone 缓冲视图 UIActivityIndicatorView
- MFC制作双缓冲无闪烁的字幕滚动条
- MFC制作双缓冲无闪烁的字幕滚动条
- 滚动视图滚动至顶部
- 滚动视图和网页视图
- [cocos2dx]-继承CCSprite子类中的update方法启动遇到的问题解决
- 面试题04 - 二叉树中和为某一值的所有路径 [树]
- Condition的应用
- Lua脚本语言学习笔记
- fstab修改错误了如何修复
- 滚动视图双缓冲
- 数据存储之SQLite数据库操作
- 灰度世界算法学习
- [cocos2d-x] CCArray使用注意
- bin/nutch crawl log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /usr/nutc
- 一种不错的从SQLServer转成Mysql数据库的方法
- SKB包的接收-----从网卡驱动到TCP层的处理流程
- Linux下的Nutch 1.4 安装配置
- emcv移植到DM642