VC对话框显示图片

 加背景图片时,自己喜欢用下面的方法:

Windows在向窗口发送WM_PAINT消息之前,总会发送一个WM_ERASEBKGND消息通知该窗口擦除背景,默认情况下,Windows将以窗口的背景色清除该窗口。

可以响应窗口(包括子元素)的WM_ERASEBKGND,以更改它们的背景。WM_ERASEBKGND的映射函数原型如下:

afx_msg BOOL OnEraseBkgnd( CDC* pDC );

返回值:

指定背景是否已清除,如果为FALSE,系统将自动清除

参数:

pDC指定了绘制操作所使用的设备环境。

大致代码时:

BOOL CUi4Dlg::OnInitDialog()
{
//…
    //加载位图
    //CBitmap m_Back;
    m_Back.LoadBitmap(IDB_BACK);
    //…
}

BOOL CUi4Dlg::OnEraseBkgnd(CDC* pDC)
{
    CDC dc;
    dc.CreateCompatibleDC(pDC);
    dc.SelectObject(&m_Back);

    //获取BITMAP对象
    BITMAP hb;
    m_Back.GetBitmap(&hb);

    //获取窗口大小
    CRect rt;
    GetClientRect(&rt);
    //显示位图
    pDC->StretchBlt(0, 0, rt.Width(), rt.Height(),
        &dc, 0, 0, hb.bmWidth, hb.bmHeight, SRCCOPY);

    return TRUE;
}

HBRUSH CUi4Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    //设置透明背景模式
    pDC->SetBkMode(TRANSPARENT);
    //设置背景刷子为空
    return (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
}

对话框加入图片时,采用下面的方法:

步骤:

先在资源里Import一张图片,IDIDB_BITMAP2

然后在对话框上添加一个picture控件,右键点击打开属性,

type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框,

拉开就会看到所有已经载入好的图片,

选择你要的图片.运行程序即可看到.


参考了2篇文章:

http://www.vcer.net/1046595482643.html

http://www.cnblogs.com/mingzi/archive/2008/07/19/1246792.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值