Lhasaで解凍場所を指定するときに出るフォルダー一覧をAPIで実現するには?

解決


とろ  2002-08-23 05:52:54  No: 76007

ファイルの指定をするときは、普通にCommonDialogを使用すると思いますが、
フォルダーだけ指定したいので、表題のとおりLhasa等で使用している
フォルダ指定のみのものを使用したいのですが、どのAPIを使用すればいいかわかりません。
どうか、よろしくお願いいたします。


たかみちえ  URL  2002-08-23 07:50:49  No: 76008

SHBrowseForFolder以下いくつかのAPIを使います。
詳しくは…。確かここのホームページにも解説があったような…。
最近上のほうにいってないので、あいまいですけど。

  さて、Lhasaはたしか、フォルダダイアログの下にいくつかコントロールがありましたよね、
あれは、フォルダダイアログをフックすることで実現します。
ええと…。

  たしかうちに、フックをしてるモジュールがあったので、
見つけたらおいておきますね。


oku  URL  2002-08-23 10:52:03  No: 76009

ここのホームページに載ってますよ。

ダイアログの
SHBrowseForFolder(「ファイルを参照」ダイアログを表示する)です。

「ファイルを参照」を参照になってますが、
フォルダです。(^o^)
自分もこれを使ってますんで、間違いないです。


たかみちえ  URL  2002-08-23 22:33:22  No: 76010

お待たせしました。

http://homepage2.nifty.com/_omp/ShowDirectory.lzh
とりあえずここに、前作ったフォルダダイアログ拡張モジュールをおいておきます。
フォルダダイアログの拡張には、これを参考にしてください。


たかみちえ  2002-08-23 22:43:28  No: 76011

CallBackFunctionに指定する定数の解説
sdrCallBackNone コールバック関数には何も指定しない
sdrNormalDialog コールバック関数にBasicDirを指定。初期フォルダを指定できるのみ。
sdrExistsCheck コールバック関数にExistsFilesを指定。拡張子に関連付けられたEXEファイルが存在しなかったときにでるものと同じもの。
sdrCreateSelector コールバック関数にEditDialogを指定。フォルダ選択兼作成ダイアログとして動かせるようになる。
  すべての専用メッセージに応答しているので、参考にするなら、
EditDialogが参考になると思います。
(専用のメッセージは、BFFM_XXXXです。知っている限りではこの3つですべてですが、
たぶんWM_XXXXのウィンドウズメッセージも流れてくるでしょう)
  フォルダダイアログを拡張して、下にボタンをおいたりするには、
初期化時にダイアログのサイズを調べて、下にCreateWindowでボタンを設置…ですね。
とてもややこしいことになりますけど。


とろ  2002-08-27 11:50:07  No: 76012

いろいろと参考になりました。okuさん、たかみちえさん、ありがとうございます。
参考にさせてもらいます。助かりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加