質問 |
||
| 質問者:nyororo-n | チェックボックス付きツリービュー | |
|---|---|---|
困り度:
|
お世話になっております。 WINAPIにて、チェックボックスつきのツリービューを作っているのですがした処理が出来なくて困っております。(環境:BCC) わかる方がおられれば答えてもらえないでしょうか? 親アイテムにチェックが付いたとき、子アイテム全てにチェックがつく。(Exceの日付フィルタと同じ動作) 子ウィンドウのチェックが一個でもはずれると親ウィンドウのチェックが■とかになるようにするにはどのようにすれば出来るのでしょうか? (全部はずれると、親のチェックもはずれる) 下記サイトを参照した限りではツリービュー自体はそんな処理はしてくれなさそうなのですが。 サブクラス化とかして、チェックイベント拾って、子ウィンドウにもチェックいれるとかの処理を自作しないといけないのでしょうか? http://yokohama.cool.ne.jp/chokuto/urawaza/api/index.html |
|
質問投稿日時:08/03/27 22:40 質問番号:3900528 |
||
回答 |
|
| 回答者:Wr5 | チェックボックスの状態が変わったりすると、親ウィンドウに TVN_ITEMCHANGEDやTVN_ITEMCHANGINGが飛んできます。 そのメッセージを契機にHTREEITEMから、 TreeView_GetCheckState()で該当のアイテムのチェックボックスの状態が取得できます。(NMTVITEMCHANGE構造体のuStateNewからも取れると思いますが) さらに、TreeView_GetChild()で子が、TreeView_GetParent()で親が、TreeView_GetNextSibling()/TreeView_GetPrevSibling()で兄姉が取得できますので、 順次チェックボックスの状態の取得やTreeView_SetCheckState()/TreeView_SetItemState()でチェックボックスの設定が可能かと思います。 TreeView_SetItemState()のstateでINDEXTOSTATEIMAGEMASK()を使うことでチェックボックスのグレー表示なども可能かと。 # ListViewはそこそこ触ったことありますが、TreeViewはあまりさわったことないので、詳しい処理内容はちょっと… # 検索時のキーワードにくらいはなるでしょうか。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/28 00:31 回答番号:No.1 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | 回答ありがとうございます、ちょっと頑張ってみようと思います。 |