質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

ダイアログ

ユーザーにウィンドウやボックス等の形で個別で表示されるフォームであり、ユーザーに判断を促す目的で表示される。ユーザーが見逃す事のないよう、操作中のフォーム上にポップアップして表示される。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

8860閲覧

WINAPIでフォルダ選択ダイアログを表示したい。(GetOpenFileName()風に)

tettyA

総合スコア93

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

ダイアログ

ユーザーにウィンドウやボックス等の形で個別で表示されるフォームであり、ユーザーに判断を促す目的で表示される。ユーザーが見逃す事のないよう、操作中のフォーム上にポップアップして表示される。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2021/05/19 08:24

#実現したいこと
標準のフォルダ選択ダイアログってものすごく使いにくいじゃないですか。

私はこれではなくてVisualStudioのフォルダ選択ダイアログのようなやつを使いたいのですが何か方法はありませんか?

使いにくい↓
これ
使いやすい!!(フォルダを押すだけで選択されている)↓
こんなの
どなたかご教授お願いします。
#試したこと
一応GetOpenFileName()のプロパティで作成してみましたがこれではそのフォルダを開けてしないと選択されず、毎回するのは煩わしいです。

C++

1BOOL GetFolderName(HWND hParent, WCHAR* folderstr) { 2 OPENFILENAME ofn = { 0 }; 3 ofn.lStructSize = sizeof(OPENFILENAME); 4 ofn.hwndOwner = hParent; 5 ofn.lpstrFile = folderstr; 6 ofn.nMaxFile = MAX_PATH; 7 ofn.lpstrTitle = TEXT("選択したいフォルダを開いて開くボタンを押してください。"); 8 ofn.lpstrFilter = TEXT("フォルダ\0.*.*\0\0"); 9 ofn.Flags = OFN_OVERWRITEPROMPT; 10 if (GetOpenFileName(&ofn)) { 11 lstrcpyW(folderstr, std::filesystem::path(folderstr).parent_path().wstring().c_str()); 12 return TRUE; 13 } 14 return FALSE; 15}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tettyA

2021/05/19 11:00

ありがとうございました! 参考になりました!
guest

回答1

0

ベストアンサー

Vista以降の機能になりますが、IFileOpenDialog を使用してください。
サンプルは IFileOpenDialog でググったらちょいちょい出てきます。

投稿2021/05/19 10:55

編集2021/05/19 10:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/19 11:04

IFileDialogを拡張したものがIFileOpenDialogなんで、まあどっちでもいけます。
tettyA

2021/05/19 11:55

了解です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問