hhです。
エクスプローラ形式のウインドウを作ろうと思っています。
新規プロジェクト->
MFCアプリケーション->
アプリケーション->
プロジェクト形式->
Windows エクスプローラを選択しました。
で、起動すると左View(CLeftView())と右Viewがあります。
CLeftView()にプルダを表示したいのですが、
どうしたらいいでしょうか。
いろいろ検索したのですが、有用な情報が見つかりませんでした。
よろしくお願いします。
環境:XP .Net 2002 MFC使用
プルダって何でしょう?
訂正
>プルダ
フォルダです。
よろしくお願いします。
エクスプローラという言葉の解釈が間違っている感じ。
「エクスプローラ形式のウインドウ」とは単に左にツリービューがあるウィンドウと
いうことであり、左ビューに表示するものはプログラマがプログラムする必要があり
ます。
「プルダ」が「フォルダ」の間違いだとすると、自分でディスクを検索してツリー
ビューのツリーコントロールに登録する必要があります。
エクスプローラが使用している情報(アイコン等)はSHGetFileInfo関数で取得する
ことが可能です。
返事が遅かった、すみませんでした。
リストコントロールとツリーコントロールがあります、
やってみたら、ツリーコントロールは適当だと思っています。
理由としては、+、-があります。
まだ、いくつかの問題があります。
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;
}
よろしくお願いします。
なんか不得要領な質問。一体何が聞きたいのかよくわからない。
> 1.ファイルの検索
> 例:¥デスクトップの指定
SHGetSpecialFolderPath関数あたりを調べてください。
> 2.初期化
CTreeCtrl::InsertItem関数を調べてみれば分かること。
ヘルプにはサンプルコードまでのっているし。
大体、このコードの 0, 1 ってどこからくるのかな?
> 3.フォルダのアイコンが透過していなかった。
だから何?
本気で Explorer っぽいものを作りたかったら、FindFirstFile + SHGetFileInfo じゃ
なくて、IShellFolder インターフェイスを使います。