エクスプローラ形式のウインドウを作る

[戻る]
hh 2010/04/14(水) 14:12:28
hhです。
エクスプローラ形式のウインドウを作ろうと思っています。
新規プロジェクト->
      MFCアプリケーション->
          アプリケーション->
            プロジェクト形式->
               Windows エクスプローラを選択しました。
で、起動すると左View(CLeftView())と右Viewがあります。
CLeftView()にプルダを表示したいのですが、
どうしたらいいでしょうか。
いろいろ検索したのですが、有用な情報が見つかりませんでした。

よろしくお願いします。

環境:XP .Net 2002 MFC使用

PATIO 2010/04/14(水) 15:58:53
プルダって何でしょう?

hh 2010/04/14(水) 17:29:10
訂正
>プルダ
フォルダです。

よろしくお願いします。

maru 2010/04/14(水) 17:30:34
エクスプローラという言葉の解釈が間違っている感じ。

「エクスプローラ形式のウインドウ」とは単に左にツリービューがあるウィンドウと
いうことであり、左ビューに表示するものはプログラマがプログラムする必要があり
ます。

「プルダ」が「フォルダ」の間違いだとすると、自分でディスクを検索してツリー
ビューのツリーコントロールに登録する必要があります。
エクスプローラが使用している情報(アイコン等)はSHGetFileInfo関数で取得する
ことが可能です。

hh 2010/04/22(木) 10:11:21
返事が遅かった、すみませんでした。

リストコントロールとツリーコントロールがあります、
やってみたら、ツリーコントロールは適当だと思っています。
理由としては、+、−があります。

まだ、いくつかの問題があります。
1.ファイルの検索
finder.FindFile(”C" +_T("*"));
"C"とか"E"とかドライブが指定できますが、それ上の上級ドライブの指定が
どうなっているのでしょうか。
例:¥デスクトップの指定

2.初期化
m_treeview.InsertItem(name, 0, 1);
初期化する時に親フォルダと子フォルダ、
孫フォルダを一気に追加することでしょうか。

3.フォルダのアイコンが透過していなかった。
    // アイコン取得
    if (!err){
        if (!::SHGetFileInfo(path, 0, &fInfo, sizeof fInfo, 
                    SHGFI_ICON | SHGFI_SMALLICON))
     err = 1;
    }

よろしくお願いします。

maru 2010/04/22(木) 10:46:44
なんか不得要領な質問。一体何が聞きたいのかよくわからない。

> 1.ファイルの検索
> 例:¥デスクトップの指定
SHGetSpecialFolderPath関数あたりを調べてください。

> 2.初期化
CTreeCtrl::InsertItem関数を調べてみれば分かること。
ヘルプにはサンプルコードまでのっているし。
大体、このコードの 0, 1 ってどこからくるのかな?

> 3.フォルダのアイコンが透過していなかった。
だから何?

aetos 2010/04/22(木) 12:44:27
本気で Explorer っぽいものを作りたかったら、FindFirstFile + SHGetFileInfo じゃ
なくて、IShellFolder インターフェイスを使います。

古いスレッドには追加発言できません。