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();
}

浙公网安备 33010602011771号