MFC的一个对话框中怎样设置背景为一个图片

我在对话框中放了一个Picture Control,想把一个位图作为对话框背景,
在OnInitDialog()函数中写入这样的代码:
... ...
// 添加背景位图
((CStatic*)GetDlgItem(IDC_PICTURE))->SetBitmap(HBITMAP(m_bgBitmap));
运行结果没有出现那个位图,什么原因呢?
(m_bgBitmap为Dlg类成员变量,在类构造函数中就用m_bgBitmap.LoadBitmapA(IDB_BG_BITMAP);初始化了)
我能不能把一个位图放到Picture Box中,然后再把其他按钮之类控件放到它上边这样显示呢?

第1个回答  2008-08-20
建议用CImage类来存储位图。
OnInitDialog()函数中初始化此CImage对象

HINSTANCE hInstance=AfxGetInstanceHandle();
CImage m_ImageLogo;
m_ImageLogo.Load(hInstance,IDB_BG_BITMAP);
if (m_ImageLogo.IsNull())
{
MessageBox(_T("错误!无法加载图片!"));
}

映射对话框类的WM_ERASEBKGND 消息,向导自动生成OnEraseBkgnd()
在OnEraseBkgnd()函数中加入以下代码

CRect rectClient;
GetClientRect(&rectClient);
if (m_ImageLogo)
{
m_ImageLogo.TransparentBlt(pDC->m_hDC,0,0,rectClient.Width(),rectClient.Height(),0,0,m_ImageLogo.GetWidth(),m_ImageLogo.GetHeight(),m_ImageLogo.GetPixel(1,1));
}
return TRUE;
第2个回答  2008-08-23
只说几句关键提示:
用GetDC函数获取对话框DC;
创建Bitmap对象,加载位图;
用BitBlt函数拷贝。
说的不好,见笑。
第3个回答  2008-08-20
没做过,不知道具体怎么办,但是应该在对话框的 WM_ERASEBKGND 消息中来处理这个。

MFC的一个对话框中怎样设置背景为一个图片
1、声明成员变量CBrush m_brush;2、在InitDialog中添加代码:CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1); \/\/这个IDB_BITMAP1要自己添加 m_brush.CreatePatternBrush(&bmp);3、重载对话框的OnCtlColor,改最后的返回值:return (HBRUSH)m_brush;方法二:把下面这段代码加进OnPaint()里就行了 CPa...

怎么给MFC的对话框加背景图片
1、新建MFC应用程序。2、在应用程序中,选择基于对话框,其他保持默认即可。3、右击项目,选择添加-资源。4、在添加资源对话框中,点击导入,选择要作为背景的图片。5、在工具箱找到Picture控件,托到界面中。6、在界面上点击选中Picture控件,然后在属性的Type下拉框中,选择Bitmap。7、再在Picture控件的...

MFC中,对话框的背景如何更换?
在上面添加一个 PICTURE 控件 picture 右键属性 在TYPE中选 Bitmap 然后再Image 中选择你要做背景的图片 注:Bitmap的图片可以按CTRL+R 选Bitmap然后选 import 添加~控件框如果没有的话在菜单栏空白处右键 选Control (中文叫做控件)祝你能更换顺利~!

...但不知道如何在MFC对话框中插入背景图片,把这图片用于登录界面的背景...
背景图像加载很简单,你只需要做以下几步即可(假设你的登陆界面对话框类名叫“CLoginDlg”):(1)菜单“Insert”->"Resource",选择Bitmap,然后点“Import...”,选择你的背景图像,然后假设该资源ID为“IDB_BITMAP1”;(2)在LoginDlg.h下声明一个CBitmap m_BKbitmap;(3)在LoginDlg.cp...

MFC基于单文本框如何添加音乐,图片
首先要为对话框添加消息映射,主要是:BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)ON_WM_ERASEBKGND()\/\/添加这里 END_MESSAGE_MAP()然后在相关代码区域添加代码:在资源里载入图片,默认id:IDB_BITMAP1 BOOL CHelpDlg::OnEraseBkgnd(CDC* pDC){ \/ \/\/不使用背景图片时启用,否则失效。START \/\/背景色 BO...

VC6.0MFC中怎样给对话框添加背景图片?
你添加的这个不是bmp位图文件 附加位图的时候,不能单单是把文件后缀改成.bmp 你可以用画图,或者其他看图工具,打开图片后另存为bmp格式 再插入的时候,就会变成位图附加到项目中了 附加了以后,图片的id会变成IDB_BITMAP1,你可以改成自己想要的名字 ...

MFC中,如何给基本对话框加上JPG格式的背景图片
mfc只能识别bmp的图片,你可以把jpg图片转成bmp格式的,注:用windows画图就可以,然后再资源里面添加位图资源,在对话框里放一个位图对话框,设置位图为你的图片,设置属性为透明即可。

单文档的主框架中怎么添加背景图片?
一、 使用MFC AppWizard向导创建一个多文档窗口应用程序 1、在VC的“File”菜单中单击[New],弹出一“New”对话框。在“Projects”页中选择“MFC AppWizard [exe]”,在“Project name”编辑框中输入“DrawBackground”,按[OK]按钮,退出“New”对话框。2、在“MFC AppWizard step 1”对话框到“...

MFC在对话框上画图,怎么实现对话框背景透明,但画的图不透明。
是在OnPaint或者对应消息中实现的,两者并不冲突,背景透明不会影响绘图。你所说的,应该是这样一个话题吧:怎样根据对话框背景图片设置异形窗口。这个话题比较经典,核心是SetWindowRgn等函数的使用,实现方法,可以用现成的界面库,也可以自己做,搜索“VC实现异形窗口”有太多的代码,就不复制了。

MFC怎么为不同的对话框设置不同的背景
MFC设置背景,采用添加Bitmap的方法,首先把你想要设置为背景的图片转换成bmp格式,然后再引入到工程里面,再在每个对话框中添加控件,再选择。具体见图:1、首先在工程添加bitmap,右击工程名,添加。2、右击bitmap,选择引入。3、在下面的弹出的窗口中,选择文件类型,再找到你的bmp文件 4、引入成功后...

相似回答