掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
カスタムドローのコードを短く書くには? (ID:66282)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
switch(lcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult=CDRF_NOTIFYSUBITEMDRAW; break; case CDDS_ITEMPREPAINT:。 lcd->clrText=RGB(255,255,255); //白 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; *pResult=CDRF_NOTIFYSUBITEMDRAW; break; case CDDS_ITEMPREPAINT|CDDS_SUBITEM: *pResult=CDRF_DODEFAULT; int 何 =lcd->nmcd.lItemlParam; if(lcd->iSubItem==1)// { lcd->clrText=RGB(255,0,255); //赤紫 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } if(lcd->nmcd.dwItemSpec== 1 && lcd->iSubItem==1)//上下 { s上下 = メインリスト.GetItemText(1, 2); if(s上下 == "〇") { lcd->clrText=RGB(255,0,0); //赤色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } if(s上下 == "×") { lcd->clrText=RGB(0,0,255); //青色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } } if(lcd->iSubItem==2) { lcd->clrText=RGB(102,255,255); //水色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } default: *pResult=CDRF_DODEFAULT; break; } とういうコードを書いて2列目を〇×によって赤青に色分けしたいのですが、 実際には〇×判定したい行が130個あります。 冗長に書くなら if(lcd->nmcd.dwItemSpec== 1 && lcd->iSubItem==1)//上下 { s上下 = メインリスト.GetItemText(1, 2); if(s上下 == "〇") { lcd->clrText=RGB(255,0,0); //赤色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } if(s上下 == "×") { lcd->clrText=RGB(0,0,255); //青色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } } if(lcd->nmcd.dwItemSpec== 2 && lcd->iSubItem==1)//上下 { s上下 = メインリスト.GetItemText(2, 2); if(s上下 == "〇") { lcd->clrText=RGB(255,0,0); //赤色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } if(s上下 == "×") { lcd->clrText=RGB(0,0,255); //青色 lcd->clrTextBk=RGB(0,0,0);//黒 *pResult=CDRF_NEWFONT; } } ・・・・・ を繰り返していけばいいだけですが、 130個をコードを書いていては冗長だし大変だと思うのです。 しかも将来追加する可能性がありありです。 このコードを130個書かなくて短縮してコーディングする方法は無いものでしょうか? MFC ヴィジュアルC++2005です どなたかアドバイスをお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.