为对话框添加背景图片

使用类向导添加消息,代码如下:

BOOL CVsProjectCleanerDlg::OnEraseBkgnd(CDC* pDC)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CDialog::OnEraseBkgnd(pDC);

    HBITMAP hBitmap = ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));
    //获取位图尺寸
    BITMAP bitmap;
    GetObject(hBitmap, sizeof (BITMAP), &bitmap);

    //获取对话框尺寸
    CRect rect;
    GetClientRect(&rect);

    //创建DC
    HDC m_hBkDC= ::CreateCompatibleDC(pDC->m_hDC);

    //绘图并清理
    if(hBitmap && m_hBkDC)
    {
        ::SelectObject(m_hBkDC,hBitmap);
        ::StretchBlt(pDC->m_hDC, 0, 0, bitmap.bmWidth, bitmap.bmHeight,m_hBkDC,0,0, rect.Width(), rect.Height(),SRCCOPY);
        ::DeleteObject(hBitmap);
        ::DeleteDC(m_hBkDC);
    }

    //这个很重要
    return TRUE;
}

其中IDB_BITMAP1为自己添加的bmp资源,选择合适的大小即可。

posted @ 2018-01-31 13:59  秋月的私语  阅读(795)  评论(0编辑  收藏  举报