listboxの文字に色をつけるには?


ばる  2004-11-09 20:36:34  No: 55074

はじめまして  VCの初心者なんですが、質問させてください。

現在LISTBOXに文字を埋め込み、文字に色をつける処理を
作成しています。
LISTBOXに文字を挿入することはできるのですが、色のつけ方が
わかりません。いろいろ調べてOnCtlColorを使用するまでは
わかって作成したのですが、どうもOnCtlColorに飛んできません。
OnCtlColorに処理の飛ばし方を教えてください。

OnCtlColorのソースです。

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

  CListBox* listbox_log = (CListBox*)GetDlgItem(IDC_LIST1); 
  
  if(nCtlColor == CTLCOLOR_LISTBOX){
    if(pWnd == listbox_log){
      pDC->SetTextColor(RGB(0, 0, 255));
      pDC->SetBkColor(RGB(0, 255, 255));
    }
  }else{
    pDC->SetTextColor(RGB(0, 0, 255));
    pDC->SetBkColor(RGB(0, 0, 255));
  }

  // TODO: デフォルトのブラシが望みのものでない場合には、違うブラシを返してください
  return hbr;


ばる  2004-11-09 20:53:08  No: 55075

追加です。  
VC6.0  MFCwを使用しています。


てつや  2004-11-09 20:56:12  No: 55076

>HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
CAboutDlgってバージョン情報をだすダイアログですよね。
メインダイアログにOnCtlColorを追加すれば言いだけではないでしょうか。

はずしてたらすみません。


pick  2004-11-09 20:59:47  No: 55077

ListBox が存在するのは AboutDlg なのですか?


pick  2004-11-09 21:04:41  No: 55078

かぶってしまいました・・・

>メインダイアログにOnCtlColorを追加すれば言いだけではないでしょうか。

てつやさんがおっしゃるように、
文字の色を変えたい ListBox が存在するクラスに、
OnCtrlColor を追加すればいいはずです。


ばる  2004-11-09 22:17:54  No: 55079

すいません、どうもプログラム見ると
CAboutDlgっていうのがおかしいですね。

よくコンパイルが通っていたか不思議です。

ListBoxが存在するクラスにOnCtrlColorを追加とありますが、
OnCtrlColorを呼び出すのですね。

やってみます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加