MFC中显示图像必须用GDI或者GDI+吗?

因为GDI绘制有10000的次数限制,因为绘制久了程序就会崩溃,有没有办法不使用GDI进行绘制,或者使用GDI绘制但突破这个上限?

第1个回答  2018-04-12
1、可以在内存中建立一张缓存图片,然后在这个图片上画你需要的图,然后输出到窗体,这样你可以直接保存成图片了。
2、画在bitmap上
bitmap有save方法
创建graphics的时候用:Graphics.FromImage().

GDI是WIN32下的绘图,GDI+是MFC下的绘图,对不对?
不对,GDI和GDI+对win32和MFC都适用。不能说谁是谁的,谁专属于谁的,GDI有GDI32.dll模块提供,它是windows3个主要模块之一,其他的有kernel32.dll,user32.dll,而GDI+并不属于必须范畴,而且系统是不会自带GDI+的,在VC6中 也没有,需要自己安装,但是咋VS2008以上都是随安装程序自带安装的。它...

MFC如何基于对话框动态打开jpg等格式的图片?
MFC标准支持的只有BMP位图文件,打开其它格式图片需要GDI+支持。具体你可以搜CImage类的使用,这个例子和文档很多,就不复制粘贴了。http:\/\/wenku.baidu.com\/view\/49c89c0c6c85ec3a87c2c5ff.html

mfc c++ 如何在button上 使图片大小按照按钮大小显示
OnPaint里面获得客户区的尺寸,然后将图片绘制在这个矩形范围上,灵活的使用DC即可,不过确实可能存在图片失真的问题

MFC框架下GDI+绘图问题
但是,我不建议你依赖GDI的函数来直接求算交点和区域。通常的做法是:你自己依据数据和几何公式去计算交点,进而得到区域,然后用GDI来绘图。你应当把GDI的作用仅仅局限于在你的图形表现出来,不要对它有其他的期望。你可以参考一下计算机图形学和GIS(地理信息系统)方面的一些资料或代码。

mfc基于对话框的怎么加载一幅jpg文件
1、如果是使用VS2005 VS2008的话可以使用CImage类加载jpg 2、如果是VS6.0,可以使用流操作,或者用GDI+操作 GDI+网上有例子

在使用mfc中载入bmp图像带,怎么做?
用GDI+解决这个问题比较容易,一个循环,每次新建1个HBITMAP(MFC里面新建CBitmap以后应该可以从中获得HBITMAP),然后从HBITMAP创建Graphics对象,用DrawImage方法把你这个图像带的一个部分画进去(DrawImae的参数里你可以指定要画哪个部分),完了调用一下Graphics的Flush方法。循环四次就把四个图像分开...

MFC怎么将jpg格式图片插入到资源中?
两种方法:当做二进制数据。这样可以将任何文件加入资源,但需要自己解码显示(或者GDI+)新建bitmap位图,然后将jpg使用图片编辑器打开,全选,复制,粘贴到bitmap

MFC绘图问题
这个问题我碰到过,其实最简单的方法是用多线程处理,就是把横坐标分成10份,10个线程同时画图,这样就不会显得绘图时间很长了。或者你可以用jpeg的思想,分层来显示。具体内容可以详聊。

mfc中单文档文件下的“打开”菜单实现打开图片显示在视图窗口的具体过程...
重写Open函数,DoModal出CFileDialog,获取选中图片文件路径,采用GDI或者GDI+在OnDraw中绘制,你还是选择bmp文件用GDI绘制吧,简单点,每一步在网上都可以找到源码

MFC读取并显示bmp图像出问题了,谁来解决下?
网上读取BMP的代码非常多,为什么不参考?MFC可以使用标准的BITMAPFILEHEADER和BITMAPINFOHEADER读取文件头,比你这样做效率和适应程度好的多 SetPixel是最耗时的显示方法,效率很低。BMP文件的读取,即使不使用GDI+、CImage做,也可以自己构建HBITMAP或者CBitmap,这样直接BitBlt就可以显示了,也不影响你后续...

相似回答