MFC设置背景图片之二

前言

上面已经说过一种设置背景图片的方法,但那种方法只能显示指定大小的图片,不能契合窗口大小,这里提供第二种方法

添加资源

向MFC添加图片相信没问题了,上一篇主要就是说明如何向MFC资源中添加图片,现在我们的图片已经添加至资源了

添加变量

在窗口类定义里面添加成员变量

public:
    CBitmap m_bmp;      //存放位图对象
    CDC m_dc;           //DC对象

修改窗口初始化函数

在窗口初始化函数OnInitDialog()中添加

    //加载位图
    CBitmap bmp;
    bmp.LoadBitmap(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);

修改窗体重绘函数

在窗体重绘函数OnPaint()的if条件语句的else分支内添加

//画图DC
        CPaintDC dc(this);
        CRect rect ;
        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);

效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值