下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VCPicture控件的加载图像的使用总结非动态显示图片(即图片先通过资源管理器载入,有一个固定ID)动态载入图片(即只需要在程序中指定图片的路径即可载入)为方便说明,我们已经建好一个基于对话框的工程,名为Ttest,对话框类为CTestDlg(一)vcpicturef空件非动态载入图片方法1先从最简单的开始用picture控件来实现步骤:先在资源里Import张图片,ID为IDB_BITMAP2,然后在对话框上添加一个picture控件,右键点击打开属性将type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框,拉开就会看到所有已经载入好的图片,选择你要的图片.运行程序即可看到.
2、方法2.vcpicture控件通过背景图同样如上,先载入一张图片,ID为IDB_BITMAP2TestDlg.h中CBrushm_brBk;/在public中定义TestDlg.cpp中在初始化函数OnInitDialog()中加入:BOOLCTestDlg:OnInitDialog()CDialog:OnInitDialog();CBitmapbmp;bmp.LoadBitmap(IDB_BITMAP2);m_brBk.CreatePatternBrush(&bmp);bmp.DeleteObject();returnTRUE;/returnTRUEunlessyousetthefocust
3、oacontrol在打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),添加如下:HBRUSHCTestDlg:OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)HBRUSHhbr=CDialog:OnCtlColor(pDC,pWnd,nCtlColor);if(pWnd=this)returnm_brBk;returnhbr;(二)vcpicture控件动态载入图片.方法3.图像控件(本例用KoDak图像编辑控件)1.首先应该保证系统中有这个控件。注意,它不能单独使用,必须和其他几个控件(特别是Imgcmn.dll)同使用
4、。如果没有,从别的机器上copy过来即可。这几个文件是Imgadmin.ocx,Imgcmn.dll,Imgedit.ocx,Imgscan.ocx,Imgshl.dll,Imgthumb.ocx,Imgutil.dll,把它们copy到windowssystem目录下,然后用regsvr32.exe将它们分别注册。2.打开工程,进入资源管理器,在对话框上单击右键,单击InsertActivexcontrol选择Kodak图象编辑控件,大小任意。在对话框上选中该控件,为其添加变量:m_ctrlPicture。在BOOLCTestDlg:OnInitDialogO添加如下:BOOLCTestDl
5、g:OnInitDialog()CDialog:OnInitDialog();m_ctrlPicture.SetImage(aa.jpg);/保证图像在工程目录下,也可以写绝对路径m_ctrlPicture.Display();returnTRUE;/returnTRUEunlessyousetthefocustoacontrol/EXCEPTION:OCXPropertyPagesshouldreturnFALSE编译运行就OK了,此种方法的好处就是可能针对多种图像格式.方法4.vcpicture控件通过CBitmap,HBITMAP,直接用OnPaint()绘制首先在CTestDlg类中声
6、明一个变量:CBitmapm_bmp;然后我们在对话框中加入一个picture标签,名为IDC_STATIC1,然后:BOOLCDisplayPic:OnInitDialog()CDialog:OnInitDialog();if(m_bmp.m_hObject!=NULL)/判断m_bmp.DeleteObject();/载入图片HBITMAPhbmp=(HBITMAP):LoadImage(AfxGetInstanceHandle(),c:aaa.bmp,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADFROMFILE);if(hbmp=NULL)re
7、turnFALSE;/该断程序用来取得加载的BMP的信息/m_bmp.Attach(hbmp);DIBSECTIONds;BITMAPINFOHEADER&bminfo=ds.dsBmih;m_bmp.GetObject(sizeof(ds),&ds);intcx=bminfo.biWidth;/得到图像宽度intcy=bminfo.biHeight;/得到图像高度/得到了图像的宽度和高度后,我们就可以对图像大小进行适应,/即调整控件的大小,让它正好显示一张图片/CRectrect;GetDlgItem(IDC_STATIC1)-GetWindowRect(&rect);ScreenToCli
8、ent(&rect);GetDlgItem(IDC_STATIC1)-MoveWindow(rect.left,rect.top,cx,cy,true);/调整大小returnTRUE;/returnTRUEunlessyousetthefocustoacontrol/EXCEPTION:OCXPropertyPagesshouldreturnFALSE图片加载成功了,标签大小也适应了,下面就是绘制绘制图像了,打开类向导,重载WM_PAINT消息voidCDisplayPic:OnPaint()/以下三种情况任选一种会是不同效果(只能一种存在)/CPaintDCdc(this);/若用此句,得
9、到的是对话框的DC,图片将被绘制在对话框上.CPaintDCdc(GetDlgltem(IDC_STATICl);/用此句,得到picture控件的DC,图像将被绘制在控件上/CDCdc;/dc.m_hDC=:GetDC(NULL);/若用此两句,得到的是屏幕的DC,图片将被绘制在屏幕上/CRectrcclient;GetDlgItem(IDC_STATIC1)-GetClientRect(&rcclient);CDCmemdc;memdc.CreateCompatibleDC(&dc);CBitmapbitmap;bitmap.CreateCompatibleBitmap(&dc,rccli
10、ent.Width(),rcclient.Height();memdc.SelectObject(&bitmap);CWnd:DefWindowProc(WM_PAINT,(WPARAM)memdc.m_hDC,0);CDCmaskdc;maskdc.CreateCompatibleDC(&dc);CBitmapmaskbitmap;maskbitmap.CreateBitmap(rcclient.Width(),rcclient.Height(),1,1,NULL);maskdc.SelectObject(&maskbitmap);maskdc.BitBlt(0,0,rcclient.Width(),rcclient.Height(),&memdc,rcclient.left,rcclient.top,SRCCOPY);CBrushbrush;brush.CreatePatternBrush(&m_bmp);dc.FillRect(rcclient,&brush);dc.BitBlt(rcclient.left,rcclient.top,rcclient.W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026老年健康管理行业市场深度研究及未来智慧养老与医疗技术融合报告
- 2026中国生物制药病毒去除过滤器验证标准体系研究报告
- 2026中国光刻胶化学品行业政策红利与监管趋势分析
- 2026电子证照互通共享云平台建设进度与部门协同障碍
- 政法大学《思想道德与法治》课件-第八章
- 2026中国液体化工物流行业监管体系与合规管理研究报告
- 2026中国膜材料表面改性技术产学研合作现状调查报告
- 2026中国口腔数字化设备市场增长驱动因素分析报告
- 2026中国液体化工物流行业标准化建设与质量提升研究报告
- 2026能源基础设施建设嵌套供需监控市场调研投资保护规划发展建议
- 2026年甘肃省白银市公安局白银分局招聘警务辅助人员41人笔试参考题库及答案详解
- 婚前医学检查相关知识考核试题(附答案)
- 2026 年烈士纪念日英雄事迹学习专题课件
- Unit3 Smart Learning 单元测试题-人教版英语九年级上册
- 电力系统分析试题与答案
- 2026年考研政治真题及答案
- 幼儿园大班活动教学设计及教案示范
- 导尿管相关尿路感染(CAUTI)防控最佳护理实践专家共识解读
- 集成电路封装技术(第二版) 课程标准、授课计划
- 护理课题申报书课件
- 常见高危药品的相关知识
评论
0/150
提交评论