none
CListCtrlの選択行のテキスト色を変更する方法について RRS feed

  • 質問

  • VC++6.0 で開発中です。

     

    CListCtrlのある特定列に表示されているテキスト色を

    条件を満たした場合、赤く表示しようとしています。

     

    CListCtrlクラスから派生したクラスでOnCustomDrawをオーバーライドしたところ、

    選択状態でない通常の状態では変更することが出来ました。

    ところが、行を選択した場合、あるいは、CListCtrlがフォーカスを失った時の

    選択行のテキスト色がデフォルト色(?)になり、赤く表示されません。

     

    1. CListCtrlの行を選択すると、青く反転し、テキストは白くなる

    2. CListCtrlがフォーカスを失うと、選択行が、グレーに反転し、テキストは黒くなる

     

    上記の場合も、テキストを赤く表示する方法が分かりません。

    なお、選択状態はそのまま残したいと思います。

     

    ご教授お願い致します。

     

    2008年5月29日 6:46

回答

  • 確認まで取っていないので参考程度に読んでください。

    御自分で確認を取られる事をお勧めしておきます。

     

    カスタムドロウでは選択状態の描画については変更できなかったと思います。

    どうしても変えたい場合はオーナードロウにして全て自前で描画する必要があったと

    記憶しています。

    私が見た事がある例では選択状態の文字の色ではなく背景色でしたが、

    カスタムドロウでは無理と言う結論だったと思います。

    カスタムドロウは既存ロジックを生かしたまま部分的に変更する方法を提供しますが、

    既存の処理はそのまま使用されている為、選択時の描画まではカスタマイズできない

    ようなつくりになっているのだと思います。

     

    2008年5月30日 7:39