3031|4

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何在EVC中实现从文件数据读写位图并显示? [复制链接]

如题,哪位大侠有写好的类给传一个。不胜感激!E-mail:dong1677@tom.com

最新回复

不是一样吗?你直接跳到DIB位置读不就行了,然后DIB转HBITMAP。  详情 回复 发表于 2007-5-22 12:04
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
首先建一个窗口,然后在窗口过程中显示位图,看你的具体要求了。
一般的做法就是在WM_PAINT的消息中,先提取一个连接显示设备的句柄hdc,用BeginPaint函数,然后根据这个句柄创建一个虚拟容器hdcmen,用来存放位图资源用的,用CreateCompatibleDC,然后加载你的位图资源,位图资源可以是文件,你可以先把文件导入到evc中,(这个总会吧),然后就可以在程序中导入,用LoadBitmap,然后把位图资源和虚拟容器hdcmen绑定,用SelectObject,这样准备工作都做好了,最后一步就是把hdcmen的内存块bitblt到hdc上即可,如果要缩放图片,可以用stretchblt函数,最后收尾工作别忘了,把每个句柄释放掉,不然会有内存泄漏,过程就是这样。
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                CClientDC pDCShow(this);
                CBitmap bitmap;
                bitmap.Attach(SHLoadImageFile(strImageFilePath));

                BITMAP bmpInfo;
                bitmap.GetBitmap(&bmpInfo);

                CDC bitmapDC;
                bitmapDC.CreateCompatibleDC(&pDCShow);
                CBitmap* pOldBitmap = bitmapDC.SelectObject(&bitmap);
                int originalX=0,originalY=0;
                pDCShow.StretchBlt(originalX, originalY,200, 200, &bitmapDC, 0, 0,bmpInfo.bmWidth, bmpInfo.bmHeight, SRCCOPY);

                bitmapDC.SelectObject(pOldBitmap);
                bitmap.DeleteObject();
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
直接读取位图文件是这样的,我的意思是把位图的数据放在一个文件中,这些位图数据之前还有其它的数据,这时候位图不是一个单独的文件,那么怎么读取和写入呢?怪我没说清楚,同样感谢楼上两位高手!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
不是一样吗?你直接跳到DIB位置读不就行了,然后DIB转HBITMAP。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表