MFC对话框加载图片资源作为背景

时间:2022-10-03 05:03:48

原运行效果图:

MFC对话框加载图片资源作为背景

=================================我是分割线==================================

方法一:

1。 .h文件中,添加

CBrush m_brush;	// 背景添加图片

2. .cpp文件OnInitDialog()中,添加

// 窗口背景为图片
CBitmap bmp;  
bmp.LoadBitmap(IDB_BITMAP3);   //IDB_BITMAP3是图片资源ID  
m_brush.CreatePatternBrush(&bmp);

3. OnCtlColor函数中,更改返回值

return (HBRUSH)m_brush; 

最后的效果图,是平铺的:

MFC对话框加载图片资源作为背景


=================================我是分割线==================================

方法二:stretchBlt()函数。

在OnPaint()函数中,添加:

CPaintDC dc(this);
CRect   myrect;   
GetClientRect(&myrect);   
CDC   dcMem;   
dcMem.CreateCompatibleDC(&dc);   
CBitmap   bmpBackground;   
bmpBackground.LoadBitmap(IDB_BITMAP3);   //IDB_BITMAP3是背景图的ID 
BITMAP   bitmap;   
bmpBackground.GetBitmap(&
	bitmap);   
CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
dc.StretchBlt(0,0,myrect.Width(),myrect.Height(),&dcMem,0,0,   
	bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);

效果图如下:

MFC对话框加载图片资源作为背景

=================================我是分割线==================================

还有第三种方法,但是个人觉得不太好用:

在OnPaint()函数里,添加如下代码

CPaintDC dc(this);
CBitmap   bitmap;
bitmap.LoadBitmap(IDB_BITMAP3);
CBrush   brush; 
brush.CreatePatternBrush(&bitmap);
CBrush*   pOldBrush   =   dc.SelectObject(&brush);
dc.Rectangle(0,0,300,300);          // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush);

效果图如下:

MFC对话框加载图片资源作为背景