はじめまして 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;
追加です。
VC6.0 MFCwを使用しています。
>HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
CAboutDlgってバージョン情報をだすダイアログですよね。
メインダイアログにOnCtlColorを追加すれば言いだけではないでしょうか。
はずしてたらすみません。
ListBox が存在するのは AboutDlg なのですか?
かぶってしまいました・・・
>メインダイアログにOnCtlColorを追加すれば言いだけではないでしょうか。
てつやさんがおっしゃるように、
文字の色を変えたい ListBox が存在するクラスに、
OnCtrlColor を追加すればいいはずです。
すいません、どうもプログラム見ると
CAboutDlgっていうのがおかしいですね。
よくコンパイルが通っていたか不思議です。
ListBoxが存在するクラスにOnCtrlColorを追加とありますが、
OnCtrlColorを呼び出すのですね。
やってみます
ツイート | ![]() |