フォルダの参照ダイアログの使用方法 – プログラミング – Home

フォルダの参照ダイアログの使用方法
 
通知
すべてクリア

[解決済] フォルダの参照ダイアログの使用方法


mua
 mua
(@mua)
ゲスト
結合: 22年前
投稿: 26
Topic starter  

VC++6.0でゲームソフトを作成しているのですが、
ゲームの状態を保存させておくテキストファイルを、
どのフォルダに保存させるかを利用者に選ばせようと思っています。

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

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


引用未解決
トピックタグ
mua
 mua
(@mua)
ゲスト
結合: 22年前
投稿: 26
Topic starter  

Win2000 VC6.0SP2 MFC
<対象:VC++ラウンジ>

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


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 188
 

わからなかったらとりあえず
Google等で
「SHBrowseForFolder」「使い方」
を検索しましょう。


返信引用
mua
 mua
(@mua)
ゲスト
結合: 22年前
投稿: 26
Topic starter  

以下のように記述してみたところ、フォルダの参照ダイアログを利用して、
絶対パスを変数に挿入できました。
ヘッダファイルに、

// コンストラクション
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
 mua
(@mua)
ゲスト
結合: 22年前
投稿: 26
Topic starter  

チェックを忘れました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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