色つきエディットボックスのスクロール不具合について – プログラミング – Home

色つきエディットボックスのスクロール不...
 
通知
すべてクリア

[解決済] 色つきエディットボックスのスクロール不具合について


ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
Topic starter  

お世話になります。
現在エディットボックスの「色変更」&「縦スクロール」の組み合わせで
不具合が発生していまして、お知恵を拝借したいと思っています。

【環境】
Win2000(SP2)
VC6(SP5)
MFC使用

【各条件】
 ・対象となるエディットボックスのプロパティ
   複数行にチェック
   水平スクロールバーにチェック
   水平オートスクロールにチェック
   垂直スクロールバーにチェック
   垂直オートスクロールにチェック
   改行を許可にチェック
   読み取り専用にチェック

 ・色変更処理
HBRUSH CxxxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if( pWnd->GetDlgCtrlID() == IDC_EDIT_xxx )
{
pDC->SetBkMode(TRANSPARENT);
return( Cxxx::GetColor(xxx) ) ;// エディットボックス背景色用ブラシ返却
}

return Cxxx::CtlColor( pDC, pWnd, nCtlColor ) ;// ダイアログ背景等用ブラ
シ返却
}

【事象】
 1.エディットボックスへスクロールできる程度の行数の文字列を設定します。
 2.マウスで縦スクロールさせます。
 3.スクロールで新たに見えるようになった部分に元々その位置にあった表示が残って
   しまい、文字が重なって表示されてしまいます。

【推測】
pDC->SetBkMode(TRANSPARENT);
この処理により「背景を透過」に指定しているのが原因となっているとは
 思うのですが、この処理を行わないと文字の背景がシステム標準の色に
 なってしまうので、この処理を削除するわけにはいきません。

ヘルプや過去ログを参照しましたが解決策が見出せなかったので質問させていただきました。
よろしくお願いいたします。


引用未解決
トピックタグ
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

 TRANSPARENTは使わずにSetBkColorを使用する。
http://www24.cds.ne.jp/~neg/pro/piyo1/dialog/color.html


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
Topic starter  

> TRANSPARENTは使わずにSetBkColorを使用する。

早速の回答ありがとうございます。
問題は解決しました。

これから今までの処理も見直ししなくては。。。

では。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました