MFC static text 设置背景透明失败解决方案
MFC static text 设置背景透明失败
我在VC里写MFC的时候,在类的消息WM_CTLCOLOR中用了下面的代码设置static text控件的背景透明:
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC-> SetBkMode( TRANSPARENT );
}
但是运行的结果是文字背景为基础的灰色,而不是和对话框的背景图一致的颜色,请问有谁遇到过这样的问题吗?有什么解决办法吗?
------解决思路----------------------
------解决思路----------------------
需要返回透明画刷
return (HBRUSH)::GetStockObject(NULL_BRUSH);
我在VC里写MFC的时候,在类的消息WM_CTLCOLOR中用了下面的代码设置static text控件的背景透明:
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC-> SetBkMode( TRANSPARENT );
}
但是运行的结果是文字背景为基础的灰色,而不是和对话框的背景图一致的颜色,请问有谁遇到过这样的问题吗?有什么解决办法吗?
------解决思路----------------------
HBRUSH Cxxx::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
//CWnd* pStatic = GetDlgItem(IDC_XXXXX);
//if(pWnd->m_hWnd == pStatic->m_hWnd)
//{
// pDC->SetTextColor ( RGB(0,0,255) );
//}
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
return CxxxParent::OnCtlColor(pDC, pWnd, nCtlColor);;
}
------解决思路----------------------
需要返回透明画刷
return (HBRUSH)::GetStockObject(NULL_BRUSH);