はじめまして、こんにちわ。
ここ最近、久しぶりにプログラムを始めてみました・・・が、
数年間、開発から離れ打合せや設計ばかりやってたので、かなり忘れてしまっている
今日この頃・・・(^^;
以前、旧オリエント文化社のスプレッドシートを使用したことがあったのですが、
あれはVB専用(!?)みたいな感じでした。
忘れかけたC++・VC++技術を再起(!?)できるかわかりませんが、
旧BOCみたいなものをC++で実現してみたいと思って仕方ありません・・・。
リストコントロールの列に複数のチェックボックスを付けられるコントロールを
作ってみようと思っています(・・・が、いきなりハードル高いですよね(--;)
SDKでさくっとチェックボックス付きリストビューを作ってみたのですが、
それも、1つのチェックボックスしか付けることが出来ないみたいです。
<例:作ってみたSDKによるリストビュー>
項目1 項目2 項目3 ・・・・ 項目6 項目7
□データ データ データ ・・・・ データ データ
<本当は・・・こうしたい>
項目1 項目2 項目3 ・・・・ 項目6 項目7
□ □ □ ・・・・ データ データ
のように、チェックボックスをそれぞれの列に独立して持ちたいのですが、
どうすれば可能になりますか?
結構難しいってことは、わかっていますが(T_T、
ここを乗り切れば・・・素晴らしい業務SEになれちゃうのかなーなんて思ってます(ありえんが)
ご参考までに、考え方についてご教授下さい!お願いします。
> ご参考までに、考え方についてご教授下さい!お願いします。
やることは大体次のような感じになるのではないでしょうか。
1)チェック状態を保持するための仕組みを考える
簡単なのはLVITEMのlParamに状態を表すデータへのポインタを
入れておく方法ですが、これではユーザーがその機能を使えません。
なにか工夫が必要でしょう。
2)チェック状態をオーナー描画で描画する
特定の目的用の描画なら簡単ですが、
アイコン・文字寄せ・拡張スタイル・カスタムドローまでサポートしよう
とするとかなり面倒臭そうです。難しいのではなく面倒。
3)マウスクリック時にチェックボックス位置の判定を行う
勝手に切り替える。または、通知メッセージを投げる。
4)チェック状態を設定・取得するためのメッセージを考える
LVM_SETCHECK, LVM_GETCHECK みたいなのを作るか、
標準のリストビューメッセージを拡張する。