
お世話になっております。
WINAPIにて、チェックボックスつきのツリービューを作っているのですがした処理が出来なくて困っております。(環境:BCC)
わかる方がおられれば答えてもらえないでしょうか?
親アイテムにチェックが付いたとき、子アイテム全てにチェックがつく。(Exceの日付フィルタと同じ動作)
子ウィンドウのチェックが一個でもはずれると親ウィンドウのチェックが■とかになるようにするにはどのようにすれば出来るのでしょうか?
(全部はずれると、親のチェックもはずれる)
下記サイトを参照した限りではツリービュー自体はそんな処理はしてくれなさそうなのですが。
サブクラス化とかして、チェックイベント拾って、子ウィンドウにもチェックいれるとかの処理を自作しないといけないのでしょうか?
http://yokohama.cool.ne.jp/chokuto/urawaza/api/i …
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
チェックボックスの状態が変わったりすると、親ウィンドウに
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はあまりさわったことないので、詳しい処理内容はちょっと…
# 検索時のキーワードにくらいはなるでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Edge Chrom などの超初心者質問...
-
デスクトップ画面を4分割するには
-
Javascript_submit()完了後に処...
-
ポップアップと作業ウィンドウ...
-
ブラウザ(IE)からエクスプロー...
-
window.openしたウィンドウのwi...
-
Access2007では、フォームのウ...
-
タスクバーに重ならないように...
-
子ウィンドウから親ウィンドウ...
-
JavaScriptで指定Windowを最大...
-
親ウィンドウと子ウィンドウの...
-
ウィンドウの2重起動を防止したい
-
javascriptで開いたウィンドウ...
-
デジタル時計の時刻合わせの方...
-
スクリプトって、何ですか?ど...
-
Outlookでこのような表示がされ...
-
小さな表示窓の呼び方は
-
[Java] Edgeでのアドレスバー非...
-
PDFを(htmlのように)無限に縦...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Edge Chrom などの超初心者質問...
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
デスクトップ画面を4分割するには
-
VBの画面で、全ウィンドウを一...
-
ウィンドウの2重起動を防止したい
-
ブラウザの×ボタンを効かなくす...
-
VBAで任意のウインドウのサイズ...
-
ポップアップと作業ウィンドウ...
-
javascriptで開いたウィンドウ...
-
1クリックでモーダルを開いてか...
-
初心者javascript グーグルクロ...
-
子ウィンドウから親ウィンドウ...
-
インタネットからPDFファイルだ...
-
子ウィンドウより親ウィンドウ...
-
ウィンドウ名からウィンドウオ...
-
IEでのみ発生するJavaScriptエラー
-
JavaScriptで指定Windowを最大...
-
プロジェクタでメニューを非表...
-
子ウィンドウから親ウィンドウ...
おすすめ情報