第一步
准备一张好看的背景图

第二步
在对话框头文件中添加背景刷子变量
public:
CBrush m_Brush;//背景图画刷
第三步
在对话框初始化函数OnInitDialog()中创建画刷。
//加载背景图
CImage img;
img.Load(_T(".\\res\\beijing.jpeg"));//载入指定路径的图片
CBitmap bmpTmp;
bmpTmp.Attach(img.Detach());//格式转 bmp格
m_Brush.CreatePatternBrush(&bmpTmp);//创建背景画刷
第四步
添加对话框消息WM_CTLCOLOR函数OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
并在里边设置背景透明,返回我们自己创建的画刷。
HBRUSH CMFC_TESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
pDC->SetBkMode(TRANSPARENT);
return m_Brush;
//HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
//return hbr;
}
运行效果

本文介绍了如何使用MFC为对话框设置背景图片。首先准备一张背景图,然后在对话框头文件中声明背景刷子变量。接着在OnInitDialog()函数中加载图片并创建画刷。最后,重写OnCtlColor函数,设置背景透明并返回自定义画刷,实现对话框背景透明显示。
1846

被折叠的 条评论
为什么被折叠?



