3

GetOpenFileName()にフックプロシージャ(OFN_ENABLEHOOKおよびフラグを使用)を追加すると、フックプロシージャが何もせずに戻っただけの場合に、Windows 7で別のダイアログが表示されるのはなぜですか?OFN_EXPLORERFALSE


アップデート:

どうやらVista/Windows 7の外観をフックで取得することは不可能です...誰かがこれを確認または対抗できますか?

4

1 に答える 1

6

これは、MSがVistaのファイルダイアログを完全に再編成したためです。フックは、リソースファイルを提供することによってファイルダイアログを拡張するために使用されます。これにより、カスタマイザーに過度の電力が与えられます。ダイアログの標準要素を簡単に変更でき、実際に多くのアプリが変更しました。ダイアログの再編成により、フックを使用していた多くのアプリが壊れていたでしょう。それらは、そこになかった、または別の方法で実装されたダイアログの要素を操作しようとしたでしょう。ダイアログのレガシーバージョンは、そのようなアプリが「フックを入れる」ために残っています。

フックを使用すると、新しい外観を取得することは不可能であるというのは正しいことです。代わりに、IFileDialogCustomizeインターフェイスを使用してダイアログをカスタマイズする必要があります。これはそれほど強力ではありませんが、ダイアログの標準部分とより一貫性のある外観と動作になります。

于 2011-01-19T12:29:53.907 に答える