毎秒1回発生するイベントに応答してリフレッシュ(テキストの変更)する静的コントロールを実装しようとしています。クライアント領域全体を毎秒ペイントしたくなかったので、静的コントロールを使用することにしましたが、問題は親ウィンドウがスキンされていることです。つまり、背景としてカスタム ビットマップがあり、静的コントロールはそうではありません。収まるので、静的コントロールの背景を透明にする方法を探しています。
これは私が今持っているものです:
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 ブラシを返して背景をペイントしようとしましたが、背景が透明になることを期待していましたが、静的コントロールが適切に再描画されないようにすることはできませんでした。つまり、テキストが古いテキストの上に描画されるということです。そのすべてが面倒です。
サブクラス化が唯一のオプションですか?