スタティックをサブクラス化して
スタティックテキストOCXを作成しています。
環境は下記のとおりです。
OS:WindowsXP(SP2)
言語:VC++6.0
過去ログ等より、
OnCtlColor内でSetBkModeを変更すればできるということだったので、
実際にやってみましたが、背景は透過になるのですが、
書かれている文字列が再描画されないため、残像が残る
形になります。
文字が上にどんどん上に重なる感じです。
実際のソースは下記のようにやってます。
LRESULT CLabelWCtrl::OnOcmCtlColor(WPARAM wParam, LPARAM lParam)
{
CDC* pdc = CDC::FromHandle((HDC)wParam);
// 背景を透明の場合
if (m_backStyle == 0)
{
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextColor(m_clForeColor);
return (DWORD)::GetStockObject(NULL_BRUSH);
// 背景が塗りつぶしの場合
} else {
HBRUSH hbr = CreateSolidBrush( m_clBackColor );
pdc->SetBkMode(OPAQUE);
pdc->SetBkColor(m_clBackColor);
pdc->SetTextColor(m_clForeColor);
return ((DWORD)hbr);
}
}
文字列がちゃんと描画されるようにするにはどうしたらよいでしょうか?
よろしくお願いいたします。
回答がないようなので、今後の課題としてクローズさせていただきます。
編集 削除