关于IImage的图片显示(闪屏的处理)
来源:互联网 发布:java如何保证线程安全 编辑:程序博客网 时间:2024/05/12 02:40
之前发过帖子询问关于绘制窗口时的问题,
A,B窗口互相独立,B弹出时会覆盖A,B隐藏时覆盖A的部分会刷白,之后在网上查询过资料后找到了解决的问题。
因为A,B窗口都是贴了PNG的图片,PNG用PS修饰之后可以显示透明的效果,于是就用了IImage绘制。
关于IIamge网上有许多资料,大家可以查阅。
后来发现刷屏的问题是由于IImage在Draw的时候速度太慢,然后看了下面的链接,然后就解决刷屏慢的问题了。
http://hi.baidu.com/nosoft008/blog/item/cd6d3131ded576ac5fdf0e66.html
一般绘图时要想不闪屏,都会用到内存DC来绘制,但是在绘制的时候大家有没有注意,如果绘制时每次的背景图片有很多,那每次draw那些图片也是很费时间的,所以可以按照上面地址里描述的,第一次做绘制的时候内存DC保留住,然后以后再绘制时直接使用那DC,然后要做的只是去调用Bltbit或者strechbit的函数来显示内存DC的图,那速度会快很多。
- C/C++ code
- //获取图片属性 m_pImage->GetImageInfo(&ImageInfo); //创建一个内存DC,用来存储图片数据 hBitmap = CreateCompatibleBitmap(hdc,ImageInfo.Width,ImageInfo.Height); hdcMem = CreateCompatibleDC(hdc); hOldSel = SelectObject(hdcMem,hBitmap); ... //将图片数据存储到内存DC中 rcMemDC = {0,0,ImageInfo.Width,ImageInfo.Height}; m_pImage->Draw(hdcMem,&rcMemDC,NULL); ... //将图片绘制到目标DC StretchBlt(hdc, pDstRect->left, pDstRect->top, pDstRect->right - pDstRect->left, pDstRect->bottom - pDstRect->top, hdcMem, pSrcRect->left, pSrcRect->top, pSrcRect->right - pSrcRect->left, pSrcRect->bottom - pSrcRect->top, SRCCOPY);
希望对大家能有帮助~~~~~~~~~~
- 关于IImage的图片显示(闪屏的处理)
- IImage的图片显示
- IImage的图片显示
- 详聊IImage的图片显示
- 详聊IImage的图片显示
- IImage COM组件图片显示
- wince下IImage接口的使用,处理jpeg、bmp、png等格式图片
- IImage的一些用法
- iImage的用法
- 关于图片的处理
- java在eclipse当中关于图片显示的处理
- android中关于图片的处理和显示
- android中关于图片的处理和显示
- wince下用IImage来解码图片的时候 添加头文件的问题
- 图片处理-图片在计算机的显示
- 关于后台处理上传图片和显示图片的简单介绍(亲测)
- 关于图片处理的文章
- 关于Android的图片处理
- U盘文件不显示U盘中毒隐藏属性无法修改的原理及解决
- 单表导入,导出文本文件
- Python异常处理体系简介
- php json_encode 问题解决小记
- 《领军之道》在IT企业管理中的应用
- 关于IImage的图片显示(闪屏的处理)
- 第一次使用这里的博客哦~
- USACO :Sorting a Three-Valued Sequence解题报告
- Win32拷贝文件夹
- Linux中的工作队列 (2.6.0~2.6.19 and 2.6.20 ~ now)
- QT事件循环
- 得到数据库中任何对象的脚本
- Linux Books (html format) http://www.makelinux.net/resources
- JQuery中自动完成提示功能