
No.2ベストアンサー
- 回答日時:
★シェル関数『SHBrowseForFolder』を使う
・下にサンプルを載せます。
●実装例
static int CALLBACK FuncCallBackProc( HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData )
{
if ( uMsg == BFFM_INITIALIZED ){
if ( HIWORD(lpData) ){
SendMessage( hWnd, BFFM_SETSELECTION, (WPARAM)TRUE, (LPARAM)lpData );
}
}
UNREFERENCED_PARAMETER( lParam );
return( 0 );
}
extern BOOL FuncSelectFolder( HWND hWnd, LPTSTR lpGetPath, LPCTSTR lpDefPath, LPCTSTR lpTitle )
{
ITEMIDLIST *lpIDlist;
LPMALLOC lpMalloc;
BROWSEINFO bi;
if ( SUCCEEDED(SHGetMalloc(&lpMalloc)) ){
if ( HIWORD(lpDefPath) ){
bi.pidlRoot = NULL;
}
else{
bi.pidlRoot = (LPCITEMIDLIST)lpDefPath;
}
bi.hwndOwner = hWnd;
bi.pszDisplayName = NULL;
bi.lpszTitle = lpTitle;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = FuncCallBackProc;
bi.lParam = (LPARAM)lpDefPath;
bi.iImage = 0;
if ( (lpIDlist = SHBrowseForFolder(&bi)) != NULL ){
SHGetPathFromIDList( lpIDlist, lpGetPath );
lpMalloc->Free( lpIDlist );
lpMalloc->Release();
return( TRUE );
}
lpMalloc->Release();
}
lstrcpy( lpGetPath, "" );
return( FALSE );
}
最後に:
・『FuncSelectFolder( hWnd, szBuff, (LPCTSTR)(INT64)CSIDL_FAVORITES, TEXT("お気に入り") );』
とすると『お気に入り』フォルダの選択画面になるよ。
・『hWnd』にウインドウ・ハンドルを指定
・『lpGetPath』に選択フォルダ名を取得
・『lpDefPath』に初期フォルダ名を指定
・『lpTitle』にタイトル文字列を指定
・戻り値は選択されれば TRUE、キャンセルならば FALSE を返す。
・以上。おわり。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル名と同名のフォルダを...
-
Excelvbaでブックをコピー名前...
-
エクセルマクロで指定フォルダ...
-
ExcelVBAでフォルダへのハイパ...
-
ディレクトリ名変更してコピー...
-
ThisWorkbookがあるフォルダ更...
-
フォルダを開いて、閉じるのプ...
-
【ExcelVBA】一覧表の記載に従...
-
デスクトップの画像をhtmlに表...
-
パス名に2バイト文字(マルチバ...
-
会社のネットワーク上のファイ...
-
Windows10でコマンドプロンプト...
-
C ファイル出力で、フォルダが...
-
バッチファイルが保存されてい...
-
EXCELのセルにフォルダのパスの...
-
VB.NETでツリービューにフォル...
-
Wallpaper Engineでおすすめの...
-
setDirectoryについて
-
フォルダの場所を可変にしたい...
-
API関数(DLL)の呼び出しにお...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
デスクトップの画像をhtmlに表...
-
ファイル名と同名のフォルダを...
-
会社のネットワーク上のファイ...
-
ExcelのVBAでフォルダ指定がで...
-
Excelで指定したフォルダに保存...
-
VBA フォルダの複数選択ができない
-
【マクロ】ファイル名の日付に...
-
VB.NRT FolderBrowserDialogを...
-
【マクロ】フォルダにファイル...
-
ThisWorkbookがあるフォルダ更...
-
(C#)フォルダを指定するダイ...
-
ディレクトリ名変更してコピー...
-
VB6で7-ZIPのAPIを使用した圧縮...
-
VBプロジェクトでのフォルダ構...
-
パス名に2バイト文字(マルチバ...
-
Debug フォルダは消していいの?
-
フォルダにリンクを貼りたい
-
フォルダAから1つのファイルだ...
おすすめ情報