
VC++6 で簡単なプログラムを作成しており、その入力として、ダイアログで任意のフォルダパスをユーザに指定させます。
ここで、Win32 API の GetOpenFilename() は、ユーザにフォルダを指定させることができるでしょうか?
色々組んではみたのですが、上記関数ではどうしてもフォルダの指定ができなかったため、フリーで簡単ライブラリと評判の(?) http://www.fox-toolkit.org/ FOX Toolkit を試してはいます。
一応それなりに FXFileDialog::getOpenDirectory() は動作してくれるのですが、パスの中に日本語があると、返却される文字列がおかしくなります。これはどうも UTF-8 でエンコーディングされているようで、自前で UTF-16 に変換し更に wcstombs() などを使用して Shift_JIS (Windows-31J) に変換したら通るようになったのですが、半角カナはダイアログ内の処理自体が通してくれないようで、ダイアログの「OK」ボタンが押せなくなります。これは何か対処方法があるでしょうか。
そのほか、何かほかに良い方法があったら教えてください。
No.2ベストアンサー
- 回答日時:
★OS は Windows ですよね。
・過去に似たような質問がありました。
・http://oshiete1.goo.ne.jp/qa2711037.html→『ディレクトリを選択するコモンダイアログボックス』
・回答 No.2 にサンプルを載せてあるので参照して下さい。
・それでユーザにフォルダを選択させるには、シェル関数の『SHBrowseForFolder()』を使います。
『GetOpenFilename()』はファイル名の選択ですので、フォルダ名の選択は出来ません。
・『FOX Toolkit』についてはアドバイスできませんので、SHBrowseForFolder() 関数で実現してみたら
よいと思います。これならば『日本語』にも対応していると思います。→確認していませんが…。
・以上。おわり。→参考にして下さい。
参考URL:http://oshiete1.goo.ne.jp/qa2711037.html
すみません、既出でしたか。検索が足りませんでした。
SHBrowseForFolder を使用して半角カナを含めた日本語のパス名も取得することができました。ありがとうございます。
ただ、ちょっと GetOpenFileName() とは見た目が違ってしまうのですね。
No.1
- 回答日時:
一般的には、SHBrowseForFolder()を使います。
使い方は、探せばたくさん出てきます。
http://www.google.com/search?hl=ja&lr=lang_ja&ie …
ただし、このAPIはWin95/98/NTといった古いOSの場合、
IEのバージョンによって使えなかったり、機能が制限されていたりします。
(バージョン5.0以降であれば問題ありません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デスクトップの画像をhtmlに表...
-
フォルダにリンクを貼りたい
-
Windows10でコマンドプロンプト...
-
Excelのハイパーリンクについて...
-
ファイル名と同名のフォルダを...
-
ThisWorkbookがあるフォルダ更...
-
EXPLORERで開いているフォルダ...
-
HTMLで保存先を指定する方法に...
-
exclude xcopy 除外フォルダ指...
-
多量のファイルをフォルダに自...
-
【マクロ】フォルダにファイル...
-
VBScriptでのフォルダ指定ダイ...
-
tortoiseSVNのリビジョンを戻し...
-
バッチファイルに詳しい方、お...
-
AIX findコマンド
-
API関数(DLL)の呼び出しにお...
-
MinGWで正規表現(regex.h)がし...
-
Access VBA で フォルダ権限...
-
CVSからチェックアウトしてきた...
-
VBA フォルダ名と画像ファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
ExcelのVBAでフォルダ指定がで...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
パス名に2バイト文字(マルチバ...
-
【コマンドプロンプト】名前順...
-
【ExcelVBA】一覧表の記載に従...
-
サーバ内のフォルダ名と各フォ...
-
Wallpaper Engineでおすすめの...
-
ファイルとフォルダのどちらも...
-
Debug フォルダは消していいの?
-
Excelで指定したフォルダに保存...
-
VBプロジェクトでのフォルダ構...
-
GetAttrが原因?
-
Hitachi Embedded Workshop (HE...
おすすめ情報