
MFC对话框背景图案问题
我只会设置自己画的图为对话框背景,因为我引入位图资源的时候,我电脑里各种格式的图片都无法引用,请问高手怎么办啊...
我只会设置自己画的图为对话框背景,因为我引入位图资源的时候,我电脑里各种格式的图片都无法引用,请问高手怎么办啊
展开
1个回答
展开全部
在dlg类的OnPaint()函数中加入如下代码:
else
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1是你自己的图对应的ID,IDB_BITMAP1即为我刚刚加入的位图资源!
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
以上代码即可实现插入位图资源作为对话框的背景图案了!
另外有点必须注意:
每次添加完新的位图资源,必须要清空上一次编译生成的文件!
这就需要在编译前选中“组建”中的“清除”选项进行清理!
清除完成以后,得再一次进行预编译,即先编译“StdAfx.cpp”,再进行后续编译生成工作!
楼主没能成功使用导入的位图,估计就是没有进行清理工作的缘故!
个人经验之谈,仅供参考!
希望能够帮到你!
else
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1是你自己的图对应的ID,IDB_BITMAP1即为我刚刚加入的位图资源!
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
以上代码即可实现插入位图资源作为对话框的背景图案了!
另外有点必须注意:
每次添加完新的位图资源,必须要清空上一次编译生成的文件!
这就需要在编译前选中“组建”中的“清除”选项进行清理!
清除完成以后,得再一次进行预编译,即先编译“StdAfx.cpp”,再进行后续编译生成工作!
楼主没能成功使用导入的位图,估计就是没有进行清理工作的缘故!
个人经验之谈,仅供参考!
希望能够帮到你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询