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

エクスプローラ形式のウインドウを作る
 
通知
すべてクリア

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


hh
 hh
(@hh)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

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

よろしくお願いします。

環境:XP .Net 2002 MFC使用


引用解決済
トピックタグ
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

プルダって何でしょう?


返信引用
hh
 hh
(@hh)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

訂正
>プルダ
フォルダです。

よろしくお願いします。


返信引用
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

エクスプローラという言葉の解釈が間違っている感じ。

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

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


返信引用
hh
 hh
(@hh)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

返事が遅かった、すみませんでした。

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

まだ、いくつかの問題があります。
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
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

なんか不得要領な質問。一体何が聞きたいのかよくわからない。

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

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

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


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

本気で Explorer っぽいものを作りたかったら、FindFirstFile + SHGetFileInfo じゃ
なくて、IShellFolder インターフェイスを使います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました