17.3.3 编码实现图像作为对话框的背景图像
将桌面效果的图像设置为对话框的背景图像。首先为对话框类添加两个变量,一个是位图变量,另一个是画刷变量:
- CBitmap m_bmBack;
- CBrush m_brBack;
然后在对话框的初始化函数中,用位图变量载入桌面效果的位图资源,并用这个位图变量初始化这个画刷变量。
- m_bmBack.DeleteObject();
- m_brBack.DeleteObject();
- m_bmBack.LoadBitmap(IDB_BK001);
- m_brBack.CreatePatternBrush(&m_bmBack);
最后重载对话框类的OnCtlColor()函数,实现改变对话框背景图像的功能。- 01 HBRUSH CMyAlbumDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- 02 {
- 03 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- 04 if(nCtlColor == CTLCOLOR_DLG) //绘制对话框背景
- 05 return m_brBack;
- 06 return hbr;
- 07 }