CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何在对话框中加一图片??

楼主girsjj_Lavender(薰衣草)2002-05-05 10:00:30 在 VC/MFC / 基础类 提问

如何在对话框中加一图片??就像realplayer安装对话框中那种! 问题点数:20、回复次数:13Top

1 楼xpf_2000(萧丰)回复于 2002-05-05 10:02:37 得分 0

要加bmp的话,直接加入图像控件就行了Top

2 楼angel_mine(我的天使)回复于 2002-05-05 10:02:48 得分 0

用位图控件呀。Top

3 楼girsjj_Lavender(薰衣草)回复于 2002-05-05 10:12:05 得分 0

是我自己做的jpg图片!Top

4 楼winne_ll(feiyang)回复于 2002-05-05 10:14:47 得分 0

LoadImageTop

5 楼girsjj_Lavender(薰衣草)回复于 2002-05-05 10:25:27 得分 0

能不能说具体点!!Top

6 楼blactte(想认识我吗?在靠近一点!)回复于 2002-05-05 10:32:28 得分 0

编辑对话框资源  
  加入bitmap控件,右边工具栏(control)里有,好像是第一行的第二个  
  然后编辑bitmap的属性,选择你的文件.ok!Top

7 楼girsjj_Lavender(薰衣草)回复于 2002-05-05 10:54:10 得分 0

还是不行。  
  属性里,没法选择!Top

8 楼kajing(断剑)回复于 2002-05-05 11:27:30 得分 0

先把jpg转换成BMP格式。Top

9 楼lshadow(没车没房努力中。。。)回复于 2002-05-05 11:43:01 得分 0

当然不是选择的,而是用函数调用的!Top

10 楼lshadow(没车没房努力中。。。)回复于 2002-05-05 11:46:13 得分 0

CBitmap   bm;//全局variable  
  bm.LoadBitmap(yourbmp);  
  YourPictureCtrl.SetBitmap(bm);  
  Top

11 楼91program(当时明月在,曾照彩云归)回复于 2002-05-05 12:03:58 得分 20

一是使用Kodak图象编辑控件(WINDOWS98中带的);二是利用Microsoft提供的例子中的一个类。  
  一. 应该保证系统中有这个控件。注意,它不能单独使用,必须和其它几个控件(特别是Imgcmn.dll)一同使用。如果没有,从别的机器上copy过来即可。这几个文件是Imgadmin.ocx,Imgcmn.dll,Imgedit.ocx,Imgscan.ocx,Imgshl.dll,Imgthumb.ocx,Imgutil.dll,把它们copy到windows\system目录下,然后用regsvr32.exe将它们分别注册。  
  打开VC,新建一个基于对话框的工程,在对话框上单击右键,单击Insert   Activex   control…   选择Kodak图象编辑控件。打开view|classwizard,单击Member   Variables,点击Add   Variable…按钮,系统会弹出一个对话框,大体上是提示你它要把控件加入工程中了,确定即可。在接下来的对话框上继续点击OK,此时,会出现一个对话框,提示你输入变量名,输入你想要的名字即可。我们输入m_ctrlPicture。单击确定。此时你的工程中已经有了一个名字为m_ctrlPicture的控件,接下来就可以利用它来显示图片了,我们把它加到对话框的初始化中。单击ClassWizard,选择OnInitDialog,单击Edit   Code按钮。  
  在OnInitDialog中,找到//   TODO:   Add   extra   initialization   here,在下面加入如下代码:  
  m_ctrlPicture.SetImage("c:\\windows\Clouds.bmp"); //支持JPG图像  
  m_ctrlPicture.Display();  
  下面我们再来得到图象的尺寸,然后使对话框自动适应图象的大小。还是在初始化中,代码如下:  
  m_ctrlPicture.SetImage("c:\\windows\\Clouds.bmp");  
  const   int   nAddConst=40;   //图象尺寸不会正合适,需要加点增量。  
  long   lPictureWidth=m_ctrlPicture.GetImageWidth();    
  long   lPictureHeight=m_ctrlPicture.GetImageHeight();  
  MoveWindow(0,0,lPictureWidth,lPictureHeight,true); //改变对话框大小  
   
  //改变控件的大小  
  m_ctrlPicture.MoveWindow(0,0,lPictureWidth,   lPictureHeight+nAddConst,true);    
  m_ctrlPicture.Display();  
  二. 利用Cdib类   (只支持BMP图像):这个类在MSDN提供的例子中有,名字为ex10c.dsw,找到cdib.cpp和cdib.h,加入你的工程即可。  
  新建一个基于对话框的工程,单击Add   Files   to   Project,加入上面所说的两个文件。在对话框的头文件中加入#include   "cdib.h",然后给对话框类加入一个成员变量,代码如下:   Cdib   m_dibFile;在对话框的初始化函数中,加入如下代码:  
  #ifdef   MEMORY_MAPPED_FILES  
  if   (m_dibFile.AttachMapFile   ("c:\\windows\\clouds.bmp",TRUE)==TRUE)    
  {   //   share  
  Invalidate();  
  }  
  #else  
  CFile   file;  
  file.Open("c:\\windows\\clouds.bmp",Cfile::modeRead);    
  if   (m_dibFile.Read(&file)   ==   TRUE)  
  {    
  Invalidate();  
  }  
  #endif   //   MEMORY_MAPPED_FILES  
  CClientDC   dc(this);    
  m_dibFile.SetSystemPalette(&dc);  
  在OnPaint函数中,找到else,然后在里面加入如下代码:  
  BeginWaitCursor();  
  m_dibFile.UsePalette(GetDC());  
  CSize   sizeFileDib   =   m_dibFile.GetDimensions();  
  m_dibFile.Draw(GetDC()   ,CPoint(0,0),   sizeFileDib);  
  EndWaitCursor();    
  下面继续加入让对话框自动适应图片大小的代码,还是在初始化中,紧接这上一次的代码,加入如下两行:  
  CSize   sizeFileDib   =   m_dibFile.GetDimensions();  
  MoveWindow(0,0,sizeFileDib.cx,sizeFileDib.cy,true);  
  Top

12 楼MirrorMirror(菜鸟汤)回复于 2002-05-05 12:09:47 得分 0

利用picture控件,修改其属性为bitmap,并选入位图即可Top

13 楼Hover(翔)回复于 2002-05-05 12:27:09 得分 0

......Top

相关问题

  • 如何在对话框上增加其他子对话框?
  • 一个比较菜的问题:如何在对话框中加入Flash图片?
  • 菜鸟问题!快来啊!如何给对话框加背景图片!
  • 对话框中如何加载图片啊?大虾门请进来阿
  • 如何在对话框中加入TOOLBAR?
  • 如何给对话框加上skin呢???
  • 如何在对话框中添加ToolBarCtrl?
  • 如何在对话框中加入Onsyscommand().
  • 对话框中如何添加菜单?
  • 如何给对话框加背景

关键词

  • 控件
  • 代码
  • 文件
  • 对话框
  • ctrlpicture
  • dibfile
  • sizefiledib
  • 单击
  • lpicturewidth
  • lpictureheight

得分解答快速导航

  • 帖主:girsjj_Lavender
  • 91program

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo