永发信息网

MFC中如何载入bmp和jpeg格式的图片,并作为文件背景

答案:2  悬赏:10  手机版
解决时间 2021-04-29 00:05

MFC中如何载入bmp和jpeg格式的图片,并作为文件背景?

要求有具体操作过程,不能只是代码

最佳答案
PSP是一台索尼推出的掌机,它可以通过安装模拟器来运行以上游戏。
全部回答

通过资源加载BMP位图的方法:

 CDC m_MemDc;//定义一个DC  CBitmap m_BkBmp;//定义个位图对象  BITMAP m_BmpInfo;//定义一个位图信息结构体  CDC *pDc = GetDC();//定义一个DC指针,并指向屏幕DC    m_BkBmp.LoadBitmap(IDB_TEST1);  m_BkBmp.GetBitmap(&m_BmpInfo);//获取位图高宽等信息,保存在位图结构体中  m_MemDc.CreateCompatibleDC(pDc);//创建一个兼容屏幕DC的内存DC:m_MemDc。  m_MemDc.SelectObject(&m_BkBmp);//将该位图选择到刚创建的内存DC中。      pDc->BitBlt(0,0,m_BmpInfo.bmWidth,m_BmpInfo.bmHeight,&m_MemDc,0,0,SRCCOPY);    //这个贴图只贴一次,当你最小化后再还原,刚才的贴图就没了。

以下是通过文件加载BMP位图的方法

CDC m_bgDC;//定义一个DC  CBitmap m_bgBmp;//定义个位图对象  BITMAP m_bgBmpInfo;//定义一个位图信息结构体  CRect m_CliRect;//定义一个矩形对象,用来保存窗口客户区大小  CDC *pDc = GetDC();//定义一个DC指针,并指向屏幕DC  GetClientRect(&m_CliRect);//获取客户去大小,并保存到m_CliRect对象中    HBITMAP  h_bgBmp = (HBITMAP)::LoadImage(NULL,"位图文件名.bmp",IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);  if (h_bgBmp == NULL)  {   MessageBox("加载位图失败");   return;  }  m_bgBmp.Attach(h_bgBmp);//将读取到的位图数据保存到位图对象中  m_bgBmp.GetBitmap(&m_bgBmpInfo);//获取该位图的大小  m_bgDC.CreateCompatibleDC(pDc);//创建一个兼容于屏幕DC的内存DC  m_bgDC.SelectObject(&m_bgBmp);//将该位图选入到刚刚创建的内存DC中。    pDc->StretchBlt(0,0,m_CliRect.Width(),m_CliRect.Height(),&m_bgDC,0,0,m_bgBmpInfo.bmWidth,m_bgBmpInfo.bmHeight,SRCCOPY);          //如果想把该位图作为背景一直显示,  //针对MFC写的基于对话框的程序,  //那么只要在对话框的OnPaint();这个函数中执行StretchBlt或者bitblt  //在OnInitDialog();这个函数中做以上的那些初始化,将变量作为对话框类的成员变量;  //如此这般就可以在窗口上一直显示你选择的图片了。

 //如果是基于文档的程序,方法类似, 总之思路就是:

 //1 在窗口类中定义以上必须的变量(对象)  //2 在窗口的初始化函数中 初始化以上这些变量(对象)  //3 在窗口的刷新响应函数中将选择的位图贴图到窗口上

至于加载JPG的,貌似就需要专门的组建了,个人认为jpg那个可以理解为压缩了的位图。想要得到JPG图片中各个点的RGB信息比较麻烦点。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
要把友情变成爱情,我要如果开口
求丝路英雄蓝钻cdkey 越高越好
清真菜图卷 多少钱?
手掌心痒是什么原因
FBI测试题
对方无驾照无行驶证事故怎么划分?跪求速度
电脑高手请进:我的电脑要安装这样的插件,但
我的psp是不是变砖了?
为什么我这几天都觉得人昏昏沉沉的呢?
表示爱了不回头的句子,爱一个人今生永不后悔
NOKIAN91属于哪一款型号的,<N系列的都别回
玫瑰花园投诉
银杏花园西门(人行门)在什么地方啊,我要过去
卸载用友后怎么去掉uf_olap_user
office哪些版本可以在windows 10上用
推荐资讯
跪求!!!求一个魔兽窗口化软件
为什么生活哪么苦
秦皇岛哪里好玩??
铜陵职业技术学院怎么样
想买件羽绒衣
烟台到大连船票几等仓有什么区别。具体的几个
CAD2004申请号 5910 7607 8718 7405 2040 求
为什么漂亮的女人总是高高在上的呢?
宿迁市大志快餐有限公司在什么地方啊,我要过
中河街道地址在什么地方,想过去办事
不要抄袭我的答案,谢谢
问道怎么看人物和宠物的法术伤害
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?