- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ツリーメニューを縮小させたい)
ツリーメニューを縮小させる方法
このQ&Aのポイント
- MFCのエクスプローラスタイルでスケルトンを生成し、エクスプローラのようにパソコン内のディレクトリやファイルを閲覧するものを作っています。
- すべての処理をOnInitialUpdate()内に書いてしまったため、実行すると最初からすべて展開した状態になってしまいます。
- ツリーメニューを縮小させるためには、OnItemexpandingを使うことができます。具体的な記述や引数についてはヘルプや本を参考にすることをおすすめします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CTreeCtrlのInsertItem()を使ってれば普通に閉じた状態でアイテムが追加されるはずですけどね(^_^; OnItemexpanding()はユーザあるいはプログラムがツリーアイテムの展開/縮小を行った時に呼ばれるハンドラなので関係ありません。 プログラム側でツリーアイテムの展開/縮小を行うにはCTreeCtrl::Expand()を使います。 (CTreeCtrl::Expand()の詳細はURLを参照してください) 第一引数は操作するツリーアイテムのハンドル 第二引数は操作内容 閉じる場合:TVE_COLLAPSE 開く場合:TVE_EXPAND なので、アイテムを閉じたい場合には Expand(ツリーアイテムのハンドル, TVE_COLLAPSE); とします。 以下に簡単な例を。 HTREEITEM hTree; CTreeCtrl& tree = GetTreeCtrl(); hTree = tree.InsertItem("ルート", TVI_ROOT, TVI_LAST ); tree.InsertItem("子アイテム", hTree, TVI_LAST ); tree.Expand(hTree, TVE_COLLAPSE);
お礼
申し訳ありません、締め切ったときにお礼を一緒に書き込んだはずなのですが うまく入らなかったようでした。お礼が遅れてすみませんでした。 大変解かりづらい説明に対し、お答えいただきましてありがとうございました。 なかなかやってみる時間がとれていないのですが、こういう関数があったのを 知らなかったので、大変助かります。 CTreeCtrl::Expand()でなんとかなりそうです。 どうもありがとうございました。 またよろしくお願いします。