使用PictureControl显示BMP图片.doc_第1页
使用PictureControl显示BMP图片.doc_第2页
使用PictureControl显示BMP图片.doc_第3页
使用PictureControl显示BMP图片.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CBitmap bitmap;bitmap.LoadBitmap(IDB_CTYPE_REPAIR);/HBITMAP hBitmapRet =bitmap.Detach();(CStatic*)GetDlgItem(IDC_CTYPE)-SetBitmap(static_cast( bitmap.Detach() ) ) ;下面是关于怎样使用Picture Control显示BMP图片:查找了一下SetBitmap是这样定义的:/ uBmpResource:图片ID; uCtrlResource: Picture控件IDvoid SetBitmap(UINT uBmpResource, UINT uCtrlResource)HBITMAP hBitmap;CStatic *pStatic = (CStatic *)GetDlgItem(uCtrlResource);hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(uBmpResource),IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);pStatic-ModifyStyle(0xF, SS_BITMAP);pStatic-SetBitmap(hBitmap);根据定义,在对话框初始的时候写入下面的代码(结果成功正常显示):BOOL CLoginDog:OnInitDialog()CDialog:OnInitDialog();/添加登陆窗口中的图片HBITMAP hBitmap;/关联图片IDhBitmap =(HBITMAP)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_LOGIN_PIC),IMAGE_BITMAP,0,0,LR_LOADMAP3DCOLORS);/获得指向静态控件的指针CStatic *pStatic=(CStatic *)GetDlgItem(IDC_STATIC_PIC);/控件ID/设置静态控件的样式,使其可以使用位图,并试位标显示使居中pStatic-ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);/设置静态控件显示位图pStatic-SetBitmap(hBitmap);return TRUE; 来源:考试大-计算机二级考试/ 这两天在做一个图像压缩处理程序的界面,其中用到了动态加载位图。之前只做过静态位图的加载,做动态位图加载也花了点时间。下面我就把静态和动态加载的方法都跟大家分享一下,同时也便于自己查阅,如果大家有更好的办法也记得共享一下哦!静态加载位图:1.添加控件:添加Text控件做为显示位图的控件,添加“显示位图”按钮控件;2.插入位图资源,设置ID为IDB_BITMAP1;3.用classwizard为按钮控件添加响应函数,并添加代码如下:void CStaticImageDlg:OnShowbitmap() / TODO: Add your control notification handler code here /获得指向静态控件的指针 CStatic *pStatic=(CStatic *)GetDlgItem(IDC_STATICIMAGE2); /获得位图句柄 HBITMAP hBitmap=:LoadBitmap(AfxGetApp()-m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1); /设置静态控件的样式,使其可以使用位图,并试位标显示使居中 pStatic-ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE); /设置静态控件显示位图 pStatic-SetBitmap(hBitmap); 然后就可以编译运行了。动态加载位图 动态加载位图也就是说可以通过点击按钮来选择文件中你所想要打开显示的位图,而不是事先导入的。1.首先也是添加显示位图的控件,不过这次添加的是picture控件,然后添加“显示位图”按钮;2.为“显示位图”按钮添加响应函数:void CLoadMapDlg:OnLoadmap() / TODO: Add your control notification handler code here OnPaint(); CString m_strfile; CRect r; GetClientRect(&r); /获得控件客户窗口大小 CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, Bmp files(*.bmp)|*.bmp|,NULL); if(dlg.DoModal () m_strfile=dlg.GetPathName (); HBITMAP hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_strfile,IMAGE_BITMAP,r.Width()/2, r.Height()/2,LR_LOADFROMFILE); CStatic* pPic=(CStatic*)GetDlgItem(IDC_PICTURE); ASSERT(pPic); pPic-SetBitmap(hbitmap); Invalidate(); 3.最重要的一点是插入的picture控件的TYPE要选中“BitMap”,而不是Frame,否则将出现编译通过,而位图无法显示的情况! 在解决静态和动态加载图片的过程中我更加体会到做事情多思考,多动手,多像GOOGLE请教的道理。以前我总是照着书上的例子敲代码,结果发现真正要做出一个东西的时候,却一行代码都写不出来。那时候才后悔当初练习的时候为什么不看懂才敲。俺要做的是程序员不是打字员。虽然我们必须从书本上的范例开始学习,但是在每学完一个例子以后我们应该把从中学到的东西结合自己以前学的东西来做出一个属于自己的东西来,这样我们才真正进步了哦!/ 查看文章 VC动态加载bmp位图资源2010-10-31 14:56SDK和MFC插入资源时,都要求是BMP格式的位图资源。但位图资源不是显示动态图片。好了不废话。下面介绍两种VC动态加载bmp位图资源:1、加载BMP文件路径的位图资源利用到了一个API函数LoadImage(),具体用法可以查询MSDN添加一个静态文本控件IDC_Static,添加成员变量m_Image,添加入以下代码:this-m_Image.ModifyStyle(0,SS_BITMAP | SS_CENTERIMAGE); /该静态控件设置为是用来显示位图的,HBITMAP hBmp = (HBITMAP):LoadImage(0, 2.bmp, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); /bmp文件路径直接读取该bmp图象的句柄,并转换为HBITMAP类型this-m_Image.SetBitmap(hBmp); / 将bmp文件显示到静态文本框中2、动态加载资源里的位图bmp用到了API函数LoadBitmap()添加位图资源 ID为IDB_BITMAP1和一个静态文本控件IDC_Static,并为其添加成员变量m_Image,添加入以下代码:this-m_Image.ModifyStyle(0,SS_BITMAP | SS_CENTERIMAGE); /将该静态控件设置为是用来显示位图的HBITMAP hBitmap=:LoadBitmap(A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论