掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ActiveXで作成したスタティックテキストの背景を透過させるには? (ID:61082)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
スタティックをサブクラス化して スタティックテキスト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); } } 文字列がちゃんと描画されるようにするにはどうしたらよいでしょうか? よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.