
SDK如何设置对话框静态控件背景为透明
我做出来静态文本后面是灰色的我想把它的背景设置成背景图片,是SDK做的,不要MFC的。网上基本上都是MFC做的,求SDK的方法...
我做出来静态文本后面是灰色的 我想把它的背景设置成背景图片,是SDK做的,不要MFC的。网上基本上都是MFC做的,求SDK的方法
展开
2个回答
展开全部
在对话框消息WM_CTLCOLOR对应的函数中添加两行代码即可:
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
....
if( nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT); //设置背景为透明
hbr=HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
// TODO: Return a different brush if the default is not desired
return hbr;
}追问这个是mfc的,我问的是sdk.. =-=
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
....
if( nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT); //设置背景为透明
hbr=HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
// TODO: Return a different brush if the default is not desired
return hbr;
}追问这个是mfc的,我问的是sdk.. =-=
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在你的对话框消息处理函数(DlgProc)里面处理WM_CTLCOLORSTATIC消息,
wParam是HDC,用SetBkMode设成透明
SetBkMode((HDC)wParam, TRANSPARENT);
wParam是HDC,用SetBkMode设成透明
SetBkMode((HDC)wParam, TRANSPARENT);
追问
case WM_CTLCOLORSTATIC:
SetBkMode((HDC)wParam,TRANSPARENT);
break;
这么写对吗,还是没有啊。
追答
不要用break;
用 return (HBRUSH) GetStockObject(NULL_BRUSH);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询