MFC如何设置背景图片
来源:互联网 发布:淘宝卖家正常发货时间 编辑:程序博客网 时间:2024/06/05 02:19
方法有很多种,有难有易。接下来从简单到难来讲解,并举例。
一、利用WM_CTLCOLOR消息将图片绘制上去
步骤如下:
1.为对话框添加WM_CTLCOLOR消息
2.添加两个成员变量
CBitmap m_bmp; //位图 CBrush m_brush; //画刷
3.加载位图,并且在WM_CTLCOLOR函数中绘制背景
m_bmp.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1)); //这里将位图加载进资源后,再Load m_brush.CreatePatternBrush(&m_bmp); if (nCtlColor == CTLCOLOR_DLG) { return m_brush; }
结果如图:
这个方法的缺点就是,图片不能自适应窗口大小。
二、用GDI函数将图片”画”上去
步骤如下:
1.添加成员变量如下
CBitmap m_bmp; //存放位图对象 CDC m_dc; //DC对象
2.在初始化对话框中加载位图并选入DC中
//加载位图 CBitmap bmp; bmp.LoadBitmapA(MAKEINTRESOURCE(IDB_BITMAP1)); //添加位图 m_bmp.Attach(bmp); //创建兼容DC CDC* pDc = GetDC(); m_dc.CreateCompatibleDC(pDc); //用完之后释放 ReleaseDC(pDc); //把位图对象选入DC中 m_dc.SelectObject(&m_bmp); //使窗口无效,这样OnPaint函数就会被触发,使之被画出来 Invalidate(FALSE);
3.最后在OnPaint函数中将位图画出来
//画图DC CPaintDC dc(this); CRect rect = { 0 }; GetClientRect(&rect); //缩放位图 BITMAP bm; m_bmp.GetBitmap(&bm); dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &m_dc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); CDialogEx::OnPaint();
结果如图:
优点是图片可以伸缩,缺点就是图片会变得模糊。
三、用GDI+函数将图片”画”上去
1.初始化GDI+
请参看这篇文章MFC-GDI+初始化
2.添加一个Image成员变量
Image* m_img;
3.在初始化对话框中加载图片
char buf[256] = ""; GetCurrentDirectoryA(256, buf); sprintf_s(buf, "%s\\test.bmp", buf); CStringW s; //转为宽字符 s = buf; m_img = Image::FromFile(s); //加载图片
4.在OnPaint函数中画出来
CRect rect = { 0 }; GetClientRect(&rect); //获取客户区大小 Graphics g(dc); g.DrawImage(m_img, 0, 0, rect.Width(), rect.Height());
这种方法功能最全,最好用。拉伸的时候图片清晰度被保持的很好,而且可以加载很多种类型的图片。还可以对图片进行旋转等操作。
结果如图:
0 0
- MFC如何设置背景图片
- MFC 设置对话框背景图片
- MFC 设置对话框背景图片
- MFC 对话框背景图片设置
- MFC 设置Dialog背景图片
- MFC对话框设置背景图片
- MFC设置背景图片
- MFC给对话框设置背景图片
- MFC 设置对话框窗口背景图片
- MFC 窗体背景图片设置
- MFC-对话框背景图片的设置
- MFC对话框背景图片的设置
- 如何设置按钮背景图片
- 如何设置背景图片自适应
- 如何设置按钮背景图片
- JFrame如何设置背景图片
- JFrame如何设置背景图片
- 如何给MFC添加背景图片
- leetcode 92. Reverse Linked List II
- ubuntu16.0.4安装GNOME3
- PageHelper
- hadoop YARN分布式程序的编写
- mod_fastdfs.conf 至于nginx For storage
- MFC如何设置背景图片
- 安装Linux和Red hat软件的过程体会以及遇到的问题
- 大公司的高薪 OR 创业公司的期权,更加看中大公司的高薪?
- unity之ScreenPointToRay:屏幕位置转射线
- 1.Spring boot简介
- 多态
- JavaWeb不定条件查询
- UIActionSheet 字体颜色设置
- Codeforces 778A. Pupils Redistribution