掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リストビューで部分的に文字色を変更するには? (ID:76863)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あくまで技術資料からの考察ですから 間違っているかもしれませんが・・・。 Object Browser で調べればわかるように、 SubItemsというのはただの文字列の配列です。 文字情報以外持ちませんから、 SubItemsの要素(あるいはそれ以下)の単位で フォントや文字色、背景色などを変更することはできません。 ListViewの最小Object単位はListItemですから、 カスタムドローするにしても「行単位で」行うことになります。 では、どうすれば文字単位で色をつけられるか、というと ListItemのhDCは取得できますから、システムの描画を横取りして、 CreateFontやTextOutなどを駆使してオーナードローすれば いいことになります。 ただし、コントロールによっては内部で独自の処理を やっていることもありますので、オーナードローで 本当にできるかどうかはやってみないとわかりません。 (VBで使用可能な一部のコントロールは、 VB内部でオーナードローしてたりしますので、 もしそういうコントロールをサブクラス化して オーナードローしようとしたらどうなるか・・・ 神のみぞ知るです。) 技術的には面白いのですが、実現できても 効果が苦労に見合うか?というと特大の疑問符がつきますので、 RichTextBox,FlexGrid,市販のオーナードローリストビューなどで 代用できるならそのほうが好ましいでしょうし、 「納品先の要望」であるなら、撤回させるのが良いSEというものでしょう。 それでもやってみたいなら、オーナードロー、カスタムドローの VBサンプルは みーくんパパの仕事部屋 http://www.mitene.or.jp/~sugisita/family/papa/vb/ にありますので、それを参考に奮闘してください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.