您的位置:首页 > 其它

WTL控件设置透明背景

2010-11-28 12:55 615 查看
1、用LRESULT OnCtlColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)事件设置控件透明色,返回的时候要用return (LRESULT)GetStockObject(NULL_BRUSH);自己创建的null_brush不起作用~~

2、将CStatic设为透明的后,改变文字会出现与历史文字重叠,原因在于设了透明后,CStatic控件不再响应WM_ERASEBKGND事件,所以出现文字重叠,可以添加下面的函数来刷新背景:

代码

void CSidePanel::UpdateBk( int id )
{
RECT rect;
CWindow stc = GetDlgItem(id);
stc.GetClientRect(&rect);
stc.ClientToScreen(&rect);
ScreenToClient(&rect);
InvalidateRect(&rect);
UpdateWindow();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: