フォルダの参照ダイアログの使用方法

[戻る]
mua 2002/11/21(木) 20:58:38
VC++6.0でゲームソフトを作成しているのですが、
ゲームの状態を保存させておくテキストファイルを、
どのフォルダに保存させるかを利用者に選ばせようと思っています。

今は利用者に直接、保存フォルダのパスをキーボードから入力させているのですが、
フォルダの参照ダイアログを利用した方が、よいと思っています。
その使い方がわかりません。どうすれば利用できるのでしょうか。
それと、選択したフォルダのフルパスをどうやって、入手するのでしょうか。

SHBrowseForFolderを使うらしいのですが、使い方がよくわかりません。

mua 2002/11/21(木) 20:59:36
Win2000 VC6.0SP2 MFC
<対象:VC++ラウンジ>

開発環境を書き忘れてしまいました。
大変申し訳ございませんでした。

不良PG 2002/11/21(木) 21:36:05
わからなかったらとりあえず
Google等で
「SHBrowseForFolder」「使い方」
を検索しましょう。

mua 2002/11/21(木) 23:29:08
以下のように記述してみたところ、フォルダの参照ダイアログを利用して、
絶対パスを変数に挿入できました。
ヘッダファイルに、

// コンストラクション
public:
    char ssa[MAX_PATH];

と記述し、ソースファイルに、

    BROWSEINFO  bi;
    ITEMIDLIST  *idl;
    LPMALLOC    g_pMalloc;
    
    // IMallocインタフェースの取得
    SHGetMalloc(&g_pMalloc);

    bi.hwndOwner        =NULL;
    bi.pidlRoot         =NULL;          //検索開始点(nullならdesktop)
    bi.pszDisplayName   =ssa;
    bi.lpszTitle        ="成績ファイルを保存するフォルダを選択してください。";
    bi.ulFlags          =BIF_RETURNONLYFSDIRS;
    bi.lpfn             =NULL;
    bi.lParam           =0;
    bi.iImage           =0;
    //フォルダの参照ダイアログを表示
    idl=SHBrowseForFolder(&bi);
    if(idl != NULL)
    {
        SHGetPathFromIDList(idl,ssa);
    }

と記述しました。
不良PGさん、助言ありがとうございました。

mua 2002/11/21(木) 23:29:46
[[解決]]
チェックを忘れました。

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