掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エディットボックスでのフォント背景の透過 (ID:52929)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして 今VC6でエディットボックスの背景色・フォント色を変更する処理を作成しています。 エディットボックスの派生クラスを作成し、その中でON_WM_CTLCOLOR_REFLECTをオーバライドし、メンバ変数のブラシと色で背景色、及びフォント色を変更しています。 フォントの背景は透明にしたいので、SetBkModeで透明化もしているのですが、 OSが2000/98だと正常に動作するのですが、XPの場合だと透明化してくれません。 いろいろやってはみたのですが、解決策がみつからなったので、投稿させていただきました。 できましたら助言・解決策をよろしくおねがいします。 参考までにソースを記載します ----------------------------------------------------------- CEditBgClr::CEditBgClr() { m_bgBrush.CreateSysColorBrush(COLOR_WINDOW); m_color = RGB(0,0,0); } CEditBgClr & CEditBgClr::SetBackColor(COLORREF bgColor) { // ブラシを削除 m_bgBrush.DeleteObject(); // 指定された色でブラシを作成 m_bgBrush.CreateSolidBrush( bgColor); // ウィンドウを再描画 RedrawWindow(); // 自分自身を返す return *this; } HBRUSH CEditBgClr::CtlColor(CDC* pDC, UINT nCtlColor) { pDC->SetTextColor(m_color); pDC->SetBkMode(TRANSPARENT); return m_bgBrush; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.