首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于VC对话框静态文本设置背景透明的有关问题

2014-06-27 
关于VC对话框静态文本设置背景透明的问题关于VC对话框静态文本设置背景透明的问题静态文本设置字体可以但

关于VC对话框静态文本设置背景透明的问题
关于VC对话框静态文本设置背景透明的问题

静态文本设置字体可以
但是设置背景透明显示不可以

我在对话框前面又加了一个窗体,用于在这个窗体上显示视频,并将其设置到Z轴最下面
这样,静态文本是在窗体上面,并如下设置

C/C++ code
HBRUSH 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;

}

热点排行