2

に関していくつか質問がありSHBrowseForFolder()ます。BIF_USENEWUIBIF_RETURNONLYFSDIRSとで使用していBIF_VALIDATEます。主に編集ボックスに問題があります。もう少し機能を変えてほしいです。

  1. 私は有効なディレクトリにいると仮定しましょう"C:\path"。存在しないフォルダー ( と呼びましょう"Folder1") をテキスト ボックスに入力して [OK] を押すと、受け取るパスは"C:\path". OKを押すと、パスが作成"Folder1"され"C:\path"、パスが表示されるようにする方法はあります"C:\path\Folder1"か? ([新しいフォルダーの作成] ボタンを使用する必要はありません)

  2. 現在、 をクリックすると"Make New Folder"、名前を変更できる新しいフォルダーが作成されます。テキスト編集では、新しいフォルダー (デフォルト名) として表示されます。フォルダの名前を変更した後も、別のフォルダをクリックしてから新しく名前を付けたフォルダをクリックしない限り、テキスト編集では新しいフォルダとして表示されます。フォルダの名前を変更するとすぐにテキスト編集を更新する方法はありますか?

4

1 に答える 1

1

1 アプリケーション定義のコールバック関数をインストールし、BIF_VALIDATE フラグを指定してから、BFFM_VALIDATEFAILED を処理し、そこにフォルダーを作成しようとします。

2 ダイアログとテキスト編集を BFFM_INITIALIZED でサブクラス化し、ツリー コントロールから TVN_BEGINLABELEDIT と TVN_ENDLABELEDIT を探し、ユーザーが編集を終了したときに、ツリー ノード テキストへの変更に基づいて編集コントロールのテキストを変更します。フォルダ参照ダイアログのコントロールのダイアログ ID は文書化されていないため、互換性に関するリスクを考慮する必要があります。Windows の更新/アップグレード後にコードが壊れても驚かないでしょうが、ユーザーとして、これは見逃すような機能ではありません。

于 2012-05-30T21:42:53.273 に答える