原运行效果图:
=================================我是分割线==================================
方法一:
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;
最后的效果图,是平铺的:
=================================我是分割线==================================
方法二: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);
效果图如下:
=================================我是分割线==================================
还有第三种方法,但是个人觉得不太好用:
在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);
效果图如下: