我正在尝试实现一个静态控件,该控件会刷新(更改文本)以响应某些事件,该事件每秒发生一次。由于我不想每秒都绘制整个客户区,所以我决定使用静态控件,现在的问题是父窗口是蒙皮的,这意味着它有自定义位图作为背景,而静态控件没有适合,所以我正在寻找使静态控件的背景透明的方法。
这就是我现在所拥有的:
hHandle = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, 60, 212, 477, 20, hwnd, 0, hInstance, 0) ;
case WM_CTLCOLORSTATIC:
{
HDC hdC = (HDC)wParam;
SetTextColor( hdC, RGB(31,122,179) );
SetBkMode( hdC, TRANSPARENT );
return 0;//(HRESULT)GetStockObject(NULL_BRUSH);
}
break;
我尝试返回 NULL 画笔来绘制背景,希望它可以使其背景透明,但它并没有强制静态控件无法正确重新绘制,我的意思是文本被绘制在旧文本之上所以这一切都很混乱。
子类化是唯一的选择吗?