Nezuです。
昨日から今日にかけて質問させて頂いたListCtrlのサブアイテムへの
画像表示ですが、
ダイアログのスタイルがオーナー描画固定の場合は
SetItem()で画像表示が行えません。
あきらめてDrawItemで画像表示させるしかないのでしょうか?
すいません、タイトルつけ忘れました。
「オーナー描画固定での画像表示」で。
基本的にオーナー描画に関しては描画の全てを自分でやら無くては
いけなかったはずです。従ってSetItemしたから自動で描画されると言うことは
無いと思います。
カスタム描画の範囲であれば、基本的な描画はやってくれるんですけどね。
オーナー描画は実現したい部分だけを書けば良いと言うものでは無いので
かかる手間と得られる効果に納得できないならしないほうが良いと思います。
仕様上どうしても実現し無いといけない場合はそれでも頑張るしか無いんですけどね。
ちなみにダイアログではなくてリストコントロールがオーナー描画なんですよね?
ダイアログがオーナー描画と書かれているのでもし私の書込みが違っていたら
無視してもらって良いです。
レスありがとうございます。
リスト内の任意の行の選択不可をDrawItemで行なっているので
画像表示もDrawItemで行なうしかないんですね..。
リスト内の任意の行の選択不可をDrawItem以外でやる方法はないのでしょうか?
リストコントロールの派生クラスを作成して
その中で選択状態が変わったと言うイベントを捕まえて
強制的に選択状態を解除するとか位しか思いつきません。
ちょっと気になったんですが、
DrawItemでやっていると言うのは選択状態にならないように
描画しているだけなんでしょうか?
見た目が未選択なだけで内部の状態は選択状態になっている
なんて事は無いですか?
>リストコントロールの派生クラスを作成して
>その中で選択状態が変わったと言うイベントを捕まえて
>強制的に選択状態を解除するとか位しか思いつきません。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200607/06070085.txt
ここらヘンですかね。
PATIOさん、瀬戸っぷさん
レスありがとうございます。
遅くなってすいません。
>ちょっと気になったんですが、
>DrawItemでやっていると言うのは選択状態にならないように
>描画しているだけなんでしょうか?
>見た目が未選択なだけで内部の状態は選択状態になっている
>なんて事は無いですか?
ListCtrlクラスの派生クラスでアイテムを描画時にSetItemDataを使って
指定行をグレイアウトするようにしています。
(先頭のチェックボックスも選択できません)
同じ動きを保ちたいのですが、難しいようですね...
Bitmap表示をDrawItemで行うように頑張ってみます。
ありがとうございました。