2024年4月28日发(作者:)
一,对话框背景为一幅位图
1. 插入位图
打开VC6.0MFC程序,右击“Dialog”,打开“引入”,选择图片就可以引入一个位图
了。
2. 打开“ClassView”,再打开“CAbouttDlg()”函数,找到void CTuxingDlg::OnPaint()函数,
粘贴上
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
CompatibleDC(&dc);
CBitmap bmpBackground;
tmap(IDB_BITMAP1);
//IDB_BITMAP1是你自己的图对应的ID
BITMAP bitmap;
map(&bitmap);
CBitmap *pbmpOld=Object(&bmpBackground);
hBlt(0,0,(),(),&dcMem,0,0,
h,ht,SRCCOPY);
二.在对话框上显示一幅位图
法一:
把图片引入工程,其句柄名为IDB_BITMAP2;然后放一个静态控件或者图片控件
到对话框上,将其句柄名设为IDC_SHOWBMP; 具体代码为在需要使用的地方(如按钮函数或
OnInitDialog()或OnPaint()里等等)加入如下代码:
CStatic *p =(CStatic *)GetDlgItem(IDC_SHOWBMP);
HBITMAP hBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_BITMAP2));
p->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
p->SetBitmap(hBitmap);
详解:
CStatic *p =(CStatic *)GetDlgItem(IDC_SHOWBMP); //获得指向
IDC_SHOWBMP的指针,并将其强制转换为CStatic*类型,并赋值给p
HBITMAP hBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_BITMAP2));
//从工程资源处获得IDB_BITMAP2的位图句柄,并将其赋值给hBitmap变量
p->Modifystyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
//设置该静态控件(p指向的静态控件),使其用于显示位图,并且是在控件中央显
示
//(若无此步无法显示,因为没有说明静态对话框要显示的类型是什么)
p->SetBitmap(hBitmap);
//将需要显示的位图设置为bBitmap,即资源IDB_BITMAP1的句柄
法二:
通过位图所在路径显示位图(此方法无需事先将位图文件添加为该工程的资源)
在对话框上放一个静态控件(一定是静态控件,若图片控件则无法显示) 将其重命名为
IDC_BMP(不重命名的话无法添加变量),然后再为该控件添加一个变量,命名为m_image.
在需要使用的地方(如按钮函数或OnInitDialog()或OnPaint()里等等)加入如下代码:
this->m_Style(0,SS_BITMAP |SS_CENTERIMAGE);
HBITMAP hBmp = (HBITMAP)::LoadImage(0, "", IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE);
this->m_map(hBmp);
详解:
this->m_Style(0,SS_BITMAP |SS_CENTERIMAGE);
//和上面的作用一样,将该静态控件设置为是用来显示位图的,只不过这里是通过该静态对
话框的变量来进行
/ /modifystyle操作的
HBITMAP hBmp = (HBITMAP)::LoadImage(0, "",
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); //从bmp文件所在的路径直接读取该
bmp图象的句柄,并将其转换为HBITMAP类型
//注:其中的""是相对路径,即在和可执行文件的同一目录下有一个名为
path的文件夹,里面有一个名为的位图文件.


发布评论