SDK如何设置对话框静态控件背景为透明

我做出来静态文本后面是灰色的我想把它的背景设置成背景图片,是SDK做的,不要MFC的。网上基本上都是MFC做的,求SDK的方法... 我做出来静态文本后面是灰色的 我想把它的背景设置成背景图片,是SDK做的,不要MFC的。网上基本上都是MFC做的,求SDK的方法 展开
 我来答
lixin202019
2013-04-24
知道答主
回答量:13
采纳率:0%
帮助的人:7.1万
展开全部
在对话框消息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.. =-=
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
空雪梦见
2013-04-24 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1317万
展开全部
在你的对话框消息处理函数(DlgProc)里面处理WM_CTLCOLORSTATIC消息,
wParam是HDC,用SetBkMode设成透明
SetBkMode((HDC)wParam, TRANSPARENT);
追问
case WM_CTLCOLORSTATIC:
SetBkMode((HDC)wParam,TRANSPARENT);
break;
这么写对吗,还是没有啊。
追答
不要用break;
用 return (HBRUSH) GetStockObject(NULL_BRUSH);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式