关于VC对话框静态文本设置背景透明的问题关于VC对话框静态文本设置背景透明的问题静态文本设置字体可以但
关于VC对话框静态文本设置背景透明的问题
关于VC对话框静态文本设置背景透明的问题
静态文本设置字体可以
但是设置背景透明显示不可以
我在对话框前面又加了一个窗体,用于在这个窗体上显示视频,并将其设置到Z轴最下面
这样,静态文本是在窗体上面,并如下设置
C/C++ codeHBRUSH CTransstaDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: Change any attributes of the DC hereif(nCtlColor == CTLCOLOR_STATIC){pDC->SetTextColor(RGB(255, 0, 0));pDC->SetBkMode(TRANSPARENT);}// TODO: Return a different brush if the default is not desiredreturn hbr;}
但是静态文本背景并不是透明的,这是为什么啊?
代码:http://download.csdn.net/detail/yanhc519/4523989
谢谢了!
[解决办法]用MFC ClassWizard添加WM_CTLCOLOR消息:
HBRUSH CSerialTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr= CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
switch(nCtlColor)
{
case CTLCOLOR_STATIC: //对所有静态文本控件的设置
{
pDC->SetBkMode(TRANSPARENT);//设置背景为透明
pDC->SetTextColor(RGB(0,0,0)); //设置字体颜色
return HBRUSH(GetStockObject(HOLLOW_BRUSH)); // 必须
}
case CTLCOLOR_DLG: //对所有静态文本控件的设置
{
pDC->SetBkMode(TRANSPARENT);
return hbr; //返回画刷句柄
}
default:
return CDialog::OnCtlColor(pDC,pWnd, nCtlColor);
}
return hbr;
}