使用CImage双缓冲
一普通显示:现在的VC显示图片非常方便,远不是VC6.0那个年代的技术可比,而且支持多种格式的如JPG,PNG。
CImage _img;
初始化:
_img.Load(L"map.png");
显示:OnPaint事件中
CRect rect;
this->GetClientRect(&rect);
HDC hdc=::GetDC(this->m_hWnd);
_img.Draw(hdc,rect);
几行代码就解决了。
二双缓冲显示:【因为是用了两个CImage实例,要不叫伪双缓冲吧,但实现方式确实是双缓冲,可以完成拼图显示等功能,当然防刷新闪烁是肯定有效的】
当时查了一天的百度,基本没用,第二天起床前想到了一个办法,其实很简单。用Datch什么的分离位图,反而无效,咱百度谷歌都没找到相关资料,所以这也算原创了吧。
CImage img0,img1;
img0.Load("*.png");
img1.Create(w,h,img0.GetBPP());
HDC tmpdc=img1.GetDC();
先将img0的内存中的图画到img1的DC上,再用img1.Draw到显示设备中。
img0.StretchBlt(tmpdc,0,0,desw,desh,Scr.x,Scr.y,desw,desh);//将源图中RECT(scr.x,scr.y,desw,desh) 区域的图复制到目标区域。
img1.Draw(pdc->m_hDC,r);//r是显示区域,pdc是显示设备。
转载于:https://www.cnblogs.com/chenzuoyou/p/3299271.html
使用CImage双缓冲相关推荐
- CImage实现双缓冲最近邻插值
一普通显示:现在的VC显示图片非常方便,远不是VC6.0那个年代的技术可比,而且支持多种格式的如JPG,PNG. CImage _img; 初始化: _img.Load(L"map.p ...
- Cimage下实现双缓冲绘图
双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度. 双缓冲绘图的步骤: 1.在内存中创建与画布一致的 ...
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:// ...
- Symbian屏幕双缓冲DSA
本文作者: 冯兆麟(Simba) (kingsimba@tom.com) 本文献给使用Nokia Symbian 60 SDK各个版本开发游戏软件的程序员.虽然本文主要是针对游戏软件,但是大部分内容对 ...
- MFC双缓冲解决图象闪烁[转]
转载网上找到的一篇双缓冲的文章,很好用.http://www.cnblogs.com/piggger/archive/2009/05/02/1447917.html _________________ ...
- Delphi 使用双缓冲解决图片切换时的闪烁问题 good
Delphi 使用双缓冲解决图片切换时的闪烁问题 good 参考文章: (1)Delphi 使用双缓冲解决图片切换时的闪烁问题 good (2)https://www.cnblogs.com/find ...
- winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法。
winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法. 参考文章: (1)winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解 ...
- Android中实现双缓冲(画板应用)和XML文件定义菜单
1.什么是双缓冲技术?双缓冲技术就是当用户操作界面完成后,会有一个缓冲区保存用户操作的结果. 为什么要使用双缓冲技术?拿Android 游戏开发来说,界面贞每次都是全部重画的,也就说画了新的,旧的就没 ...
- C++零食:WTL中使用双缓冲避免闪烁
双缓冲的原理可以这样形象的理解:把电脑屏幕看作一块黑板.首先我们在内存环境中建立一个"虚拟"的黑板,然后在这块黑板上绘制复杂的图形,等图形全部绘制完毕的时候,再一次性的把内存中绘制 ...
最新文章
- 转帖 javascript事件监听
- 美国多所高校宣称9月线下开学,纽约大学教授:请停止妄想!
- oracle:sql约束
- Valid Sudoku
- IDEA的十大快捷键
- 供来宾访问计算机打开安全吗,计算机安全设置操作手册(22页)-原创力文档
- 导数/微分/积分的区别
- ()用于创建python与数据库之间的联系_第一篇-Django建立数据库各表之间的联系(上)...
- 云擎供应链:为中小仓库提供SaaS供应链解决方案
- JAVA设对话框的位置,setLocation/setBounds皆可
- OpenGL.Superbible.7th.Edition(openGL超级宝典第七版)随书例子运行
- 线性代数常用的公式LaTeX表示
- 如何写数学建模竞赛论文
- 802.11n无线网卡驱动linux,Ubuntu 16.04 无线网卡驱动安装 80211
- 深圳大学毕业答辩PPT模板
- iredmail mysql 密码_iRedMail 批量创建用户 (repost)
- JDT操作AST重构if块
- 求一元二次方的根(虚根求法)
- c语言程序 出圈游戏,【出圈】 (C语言代码)
- android Zxing二维码之读取手机二维码图片
热门文章
- 玩转mini2440开发板之【在64位WIN7/WIN10系统中安装USB驱动】
- 如何在ubuntu 14.04系统下开启nfs网络文件系统
- 资源 | 普通程序员如何自学机器学习
- CSS中的position
- 机器学习中的随机过程_机器学习过程
- 【Android 修炼手册】常用技术篇 -- 聊聊 Android 的打包
- “魅力足球,艺术中国”2007中国艺术精英展
- 数字IC设计经典书籍
- java spring redis_spring配置redis(xml+java方式)
- java比ios慢_Android为什么比iOS慢