对话框中控件透明的实现

对话框中控件透明的实现

如果要在对话框中加载一张图片作为背景,又要实现对话框中的各个控件的透明效果,可以用以下简单的方法实现:
1、创建两个成员变量。
CBrush m_oBrush;
CBitmap m_oBitmap;
2、OnInitiDialog中加
m_oBitmap.LoadBitmap(IDB_BITMAP_MAINWND);//背景色资源ID
m_oBrush.CreatePatternBrush(& m_oBitmap);
3、添加消息处理函数OnCtrlColor,消息为WM_CTLCOLOR指示即将绘制控件。
HBRUSH CVolumeControlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO:  在此更改 DC 的任何属性
// TODO:  如果默认的不是所需画笔,则返回另一个画笔
 if (pWnd->GetDlgCtrlID() == IDC_SLIDER_Micphone)//具体控件的ID
{
return m_oBrush;
}

return hbr;
}
这样就达到了对话框中控件的透明效果,简单、方便。

你可能感兴趣的:(对话框中控件透明的实现)