如何在对话框中加一图片??
如何在对话框中加一图片??就像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




