方法一:
1、声明成员变量CBrush m_brush;
2、在InitDialog中添加代码:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1是图片资源ID
m_brush.CreatePatternBrush(&bmp);
3、重载对话框的OnCtlColor,改最后的返回值:
1
return (HBRUSH)m_brush;
方法二:
把下面这段代码加进OnPaint()里就行了
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1); //这个IDB_BITMAP1要自己添加
CBrush brush;
brush.CreatePatternBrush(&bitmap);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.Rectangle(0,0,200,200); // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush);
方法三:使用StretchBlt()函数,具有图像自适应窗体功能
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1); //这个IDB_BITMAP1要自己添加
CBrush brush;
brush.CreatePatternBrush(&bitmap);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.Rectangle(0,0,200,200); // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush);
笔记开始:
首先在 MFAppView.h 头文件中 找到类class CMFAppView : public CView{}
在这个类中声明一个消息表示这个消息我要用,这个消息属于我
public:
afx_msg void OnPaint();
把上面的代码复制到这个class CMFAppView类中
声明完毕然后在源文件中实现他
在MFAppView.cpp源文件中创建一个OnPaint()消息回调 名字叫做 void CMFAppView::OnPaint() 类名::OnPaint()
void CMFAppView::OnPaint()
{
CRect rc;
GetWindowRect(&rc);
rc.Width(); //获得宽度
rc.Height(); //获得高度
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_图片ID这个要改自己的图片ID);
CBrush brush;
brush.CreatePatternBrush(&bitmap);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.Rectangle(0, 0, rc.Width(), rc.Height()); // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush);
}
懒得写的直接把上面的代码复制进去
这样代码就写完了,但是资源还没有导入呢,我们导入图片资源
点击 资源视图 - 对着项目 (右键) - 添加(出现一个菜单) - 资源
导入(出现对话框) - 选择一一张图片 - 打开
这样图片就导入到程序资源表了, 找到这个图片记下它的ID号 我的图片ID是IDB_BITMAP1
bitmap.LoadBitmap(IDB_图片ID这个要改自己的图片ID); 在源代码这句代码中填写你的图片ID号 我的图片ID是IDB_BITMAP1
写完运行看看,我的效果图