セルの選択制御
STEP0
リストコントロルは非常に魅力のあるコントロールです、良く知られているのがお馴染みのエクセルではないでしょうか、このエクセルと同じような物を作る事が可能になる技術を是非得とくしたい心から私は挑戦を始めました、世の中にこの様な目的のサンプルは無く有るのはド素人が制作しているダイアログベースの物が多くありますが誰もあのような物を望んではいないと強く私は思った次第です、そこから長い道のりがあり現在に至っておりますが結論から言えば可能と思います、ま!でも手短な所からリストコントロールを使いこなしてみたいと思います、考えて見ればマイクロソフトの技術者は物凄い物を作り上げたのだと思います、とにもかくにも猿まねでも良いから習得したい技術です。
下記画像の様に選択が出来る様になります
STEP1
この構造体は私が常用している物でリスト管理をするには非常に便利な物です。是非貴方も応用しながら拡張してお使いください、この構造体を定義するのはドキュメント・ヘッダーの上部に図の様に定義してます、なぜならばフォームビューは一般的にドキュメントヘッダーをインクルードしているのが普通だからですがフォームビューは発生と消滅を繰り返す特別なクラスですから、この中に永続的な変数は定義できないだから当たり前なのかもしれません。
STEP2
上記で説明した構造体はフォームビューヘッダー内部に図項目9のように記載して定義して下さい、CArrayこれは配列なのですが動的に追加と削除が行えます。チョット慣れないかな~と思うのですが是非お使いください。意味合いとしては「過去・現在」のセル選択情報を保ち反転と非反転を制御します。
STEP3
フォームビューが起動後すぐに配列を初期化しています図項目10・11行目です。あとで操作方法が出てきますから安心して下さい、このCArray<xxxx、xxxx>は非常に使いやすく優れものです。
STEP4
この関数はリストのセルがクリックされた時にこの関数が呼ばれその情報を構造体に設定し現在の値を過去に移動し新しい情報を現在に設定しています。良くご覧ください図項目8(過去)と15(現在)のヶ所です。図項目16と17がシステム(Invalidate)に対して表示更新を要求しています、この様にデータに変化が有った場合には再表示をシステムに要求する事ができます。
STEP5
ここがリストを表示しているヶ所です良く見て下さい、先ほどの動的配列の状況を30行目と40行目で判定しています30行目が非反転を行い40行目が反転即ち選択されている行になります。
STEP6
最終画面です、是非実際に確認して下さい。