6

ウィンドウの開く/保存共通ダイアログを変更/追加して、機能を追加する方法はありますか?

職場では、サーバー上に何百もの「ジョブ フォルダー」がある領域があります。ジョブに関する情報 (電子メール、スキャンしたファックス、Word ドキュメント、スプレッドシート、写真など) を格納するために、データベース アプリケーションによって自動的に作成/管理される通常の Windows フォルダーです。ジョブ番号によって名前が付けられます。

データベースからのタグに基づいてジョブフォルダーを検索するコンボボックスを使用して、標準の開く/保存ダイアログを拡張したいと考えています。これにより、ユーザーが何をしていても、正しいジョブフォルダーへの道を簡単に見つけて作業を検索/保存できるようになります。

データベースに接続して検索機能を提供することは問題ありませんが、ダイアログにコンボボックス コントロール (理想的にはキープレス/キーダウン イベントを使用) を追加する方法はありますか?

または、独自のダイアログを作成し、標準のダイアログの代わりに呼び出し/使用しますか? つまり、どのアプリからでもダイアログが呼び出され、ジョブフォルダーに簡単にアクセスできます。Outlook を使用している場合は、ジョブ フォルダーをすばやく見つけることができます。メモ帳を使用している場合は、フォルダーを簡単に見つけることができます。

これは、任意のアプリからジョブ フォルダーを見つけるための新しい統一された方法を意味します。

誰かが VB/VB.net/C# を使用する方法を知っているのが理想ですが、可能であれば、おそらく C++ になると思います。

4

3 に答える 3

5

Mark Ransom が言ったように、OFN ENABLETEMPLATE および OFN ENABLEHOOK フラグを使用して実行できます。次に、ダイアログ リソースを OPENFILENAME 構造体の lpTemplateName データ メンバーに指定します。コントロールを正しく配置するには、試行錯誤が必要です。

作成したフック プロシージャは、そのダイアログに固有のウィンドウ メッセージを受け取ります。WM_NOTIFY メッセージに特に関心があります。特別なメッセージがたくさんあります (CDN INITDONE、CDN FOLDERCHANGE など)。

かなり手の込んだものを数回作成しました。スクリーンショットを含めることができれば幸いです。

于 2008-09-29T18:55:01.833 に答える
2

関連する Windows API の Microsoft ドキュメントは次のとおりです
。 http://msdn.microsoft.com/en-us/library/ms646960(VS.85).aspx
http://msdn.microsoft.com/en-us/library /ms646839(VS.85).aspx

特に OFN_ENABLETEMPLATE フラグと OFN_ENABLEHOOK フラグを見てください。

あなたが言うように、この情報は、C/C++ で作業している場合に最も関連があります。

于 2008-09-29T18:02:41.537 に答える
0

プログラムで開始フォルダーを設定できるため、ジョブ番号 (およびフォルダーの名前) がわかっている場合は、正しいフォルダーが既に開かれている状態でダイアログを開始するように設定できます。それを超えて、シェル拡張全体を作成しないと、多くのことはできないと思います。

于 2008-09-29T15:19:30.027 に答える