载入背景图片

先载入一张图片, .。IDIDB_BITMAP1


CBrush m_brBk;//
public中定义 

#pragma once


// LoginDlg 对话框

class LoginDlg : public CDialog
{
    DECLARE_DYNAMIC(LoginDlg)

public:
    LoginDlg(CWnd* pParent = NULL);   // 标准构造函数
    virtual ~LoginDlg();

// 对话框数据
    enum { IDD = IDD_DIALOG_LogIn };

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

    DECLARE_MESSAGE_MAP()
public:
    CString m_name;
    CString m_password;
    CBrush m_brBk ;
    int log_time ;
    afx_msg void OnBnClickedButtonlog();
    afx_msg void OnBnClickedButtonloginexit();
    virtual BOOL OnInitDialog();
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
};
BOOL LoginDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    CBitmap bmp ;
    bmp.LoadBitmap(IDB_BITMAP1) ;
    m_brBk.CreatePatternBrush(&bmp);

    bmp.DeleteObject();
    // TODO:  在此添加额外的初始化

    return TRUE;  // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
}

打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),添加如下:

HBRUSH LoginDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if(pWnd == this)
        return m_brBk ;
    return hbr;
}

原文地址:https://www.cnblogs.com/liyangtianmen/p/3569686.html