

MFCのエクスプローラスタイルでスケルトンを生成し、エクスプローラのように
パソコン内のディレクトリやファイルを閲覧するものを作っています。
左のペインのツリー表示から始め、なんとか全ディレクトリ(仮想フォルダは除く)を表示したのですが、
すべての処理をOnInitialUpdate()内に書いてしまったので、
実行すると最初から、すべて展開した状態になってしまいます。
実際は、マイコンピュ-タと、その下のドライブくらいまで表示して、
あとはプラスマークをクリック or ダブルクリックにより展開させたいのです。
OnItemexpandingあたりを使うのかな?と思うのですが、
どの記述を移せばいいのか、また引数に何を入れたら良いか、
ヘルプや本を見てもいまいちわかりません。
特にOnItemexpandingを使う必要はないのですが、
縮小させる方法がありましたら教えてください。
No.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);
参考URL:http://www.microsoft.com/JAPAN/developer/library …
申し訳ありません、締め切ったときにお礼を一緒に書き込んだはずなのですが
うまく入らなかったようでした。お礼が遅れてすみませんでした。
大変解かりづらい説明に対し、お答えいただきましてありがとうございました。
なかなかやってみる時間がとれていないのですが、こういう関数があったのを
知らなかったので、大変助かります。
CTreeCtrl::Expand()でなんとかなりそうです。
どうもありがとうございました。
またよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTMLを正しく表示させるには 2 2023/06/18 09:12
- 画像編集・動画編集・音楽編集 エクスプローラー サムネイル表示されない 1 2022/12/22 10:14
- Windows 10 エクスプローラでリスト表示かつその場で階層表示はできますか? 1 2022/09/02 01:48
- Windows 10 エクスプローラで希望の場所が表示できない 2 2023/06/29 15:19
- Windows 10 Windows10の画像ファイルのサムネールがアイコン表示になってしまいました。 3 2022/07/09 13:01
- その他(パソコン・スマホ・電化製品) フォルダウィンドウの「戻る」ボタンや、「検索」ボタンなどが表示されなくなった。ツールバーも消えた。 1 2022/06/01 23:28
- ドライブ・ストレージ HDDの未割り当て領域が認識されない 7 2022/11/27 18:51
- バックアップ Windows11パソコンのデータを数クリックで完全に引っ越しするにはどうすれば良いでしょうか? 5 2022/10/11 14:08
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル一覧表(LAN内の別PC)
-
FTPコマンドでディレクトリごと...
-
モバイルのアドレスはPCとお...
-
バッチを用いたフォルダの自動移動
-
makefile でファイルをコピーす...
-
環境変数をMakefile内で有効に...
-
Permission denied in
-
currentディレクトリ内で、任意...
-
FTPでのファイルとディレクトリ...
-
拡張子を隠すのは良い事なので...
-
kshのスクリプトでワイルドカー...
-
ディレクトリの書込権限について
-
Subversionのリポジトリの削除
-
VB.NET 最下位のディレクトリ名...
-
サーバー上にディレクトリを作...
-
ディレクトリ内にあるファイル...
-
VB2008でFTPでのディ...
-
aspのページが表示できません
-
Visual Studio Express 201
-
*.php、*.php3、*.phtmlの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
makefile でファイルをコピーす...
-
CFileDialogの最初のディレクト...
-
visualstudioでc#のdllができない
-
FTPでのファイルとディレクトリ...
-
VB.NET 最下位のディレクトリ名...
-
MkDir関数
-
現在位置より2つ上のディレク...
-
DLL のロードの順序
-
rmdirでフォルダが消せません
-
Subversionで、ファイルをリネ...
-
絶対パス?絶対アドレス?意味...
-
Visual C++ 2005 Express Editi...
-
define でのルートディレクト...
-
JAVA内で複数のファイルを削除...
-
ツリーメニューを縮小させたい
-
fopenでファイルが開かない場合...
-
Smarty includeでテンプレート...
おすすめ情報