- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC中在对话框上显示图片
VC++中bmp图象的显示
2010-09-26 01:39:22|??分类: VC编程 |??标签: |字号大中小?订阅
前段时间想用VC的对话框来动态地显示一副BMP位图,查了很多篇文章发现都写的很复杂(而且貌似许多都是复制粘贴而来),真正有价值的不多.其实VC显示BMP文件是很方便的,所有的代码加在一起也不过五六行而已.因而特此将自己的经验写上blog,希望能对需要的人有所帮助.
要想在VC中动态显示位图,有两种比较简单的方法:
1.显示已添加为为工程资源的位图
准备工作:把图片加为工程的资源,设其句柄名为IDB_BITMAP1;然后放一个静态控件或者图片控件到对话框上,将其句柄名设为IDC_SHOWBMP;
具体代码:在需要使用的地方(如按钮函数或OnInitDialog()或OnPaint()里等等)加入如下代码:
CStatic *p =(CStatic *)GetDlgItem(IDC_SHOWBMP);?????????????????? //获得指向IDC_SHOWBMP的指针,并将其强制转换为CStatic*类型,并赋值给p
HBITMAP hBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));//从工程资源处获得IDB_BITMAP1的位图句柄,并将其赋值给hBitmap变量
p-Modifystyle(0xF,SS_BITMAP|SS_CENTERIMAGE);??????????????????????????????????????????????????????????? //设置该静态控件(p指向的静态控件),使其用于显示位图,并且是在控件中央显示????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????//(若无此步无法显示,因为没有说明静态对话框要显示的类型是什么)
p-SetBitmap(hBitmap);????????????????????????????????????????????????????????????????????????????????????????????????????? //将需要显示的位图设置为bBitmap,即资源IDB_BITMAP1的句柄
2.通过位图所在路径显示位图(此方法无需事先将位图文件添加为该工程的资源)
准备工作:在对话框上放一个静态控件(一定是静态控件,若图片控件则无法显示) 将其重命名为IDC_BMP(不重命名的话无法添加变量),然后再为该控件添加一个变量,命名为m_image.
具体代码:在需要使用的地方(如按钮函数或OnInitDialog()或OnPaint()里等等)加入如下代码:
this-m_image.ModifyStyle(0,SS_BITMAP | SS_CENTERIMAGE);????????????????????????????????????????????????????????????//和上面的作用一样,将该静态控件设置为是用来显示位图的,只不过这里是通
//过该静态对话框的变量来进行modifystyle操作的
?????????? HBITMAP hBmp = (HBITMAP)::LoadImage(0, path\\1.bmp, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);?????//从bmp文件所在的路径直接读取该bmp图象的句柄,并将其转换为HBITMAP类型
//注:其中的path\\1.bmp是相对路径,即在和可执行文件的同一目录
//下有一个名为path的文件夹,里面有一个名为1.bmp的位图文件.??????????? this-m_image.SetBitmap(hBmp);?????????????????????????????????????????????????????????????????????????????????????????????????????????//通过变量m_image来设置该静态框所显示的位图文件.
VC中在对话框上显示图片
1、用图片控件 在对话框中加入Picture控件,属性页中General->Type设为Bitmap, Image中选中相关联的图片资源号。 这样就编译运行,你就会发现它己经可以了。 耶,不对,图片复盖了其它控件!怎么办
文档评论(0)