Meh*_*dad 2 winapi getopenfilename ofnhookproc
为什么在GetOpenFileName()中添加一个钩子过程(使用OFN_ENABLEHOOK和OFN_EXPLORER标志)会导致在Windows 7中显示不同的对话框,如果钩子过程只返回FALSE而没有做任何事情?
更新:
显然用钩子看Vista/Windows 7看起来是不可能的......有人可以确认或反驳这个吗?
原因是MS完全重新组织了Vista的文件对话框.挂钩用于通过提供资源文件来扩展文件对话框.这给定制器带来了太多的动力.他们可以很容易地修改对话框的标准元素,事实上很多应用都这样做了.对话框的重组会破坏许多使用钩子的应用程序.那些人会试图操纵对话框中不存在或者以不同方式实现的元素.对话框的旧版本仍然适用于此类应用程序"获取它们的钩子".
你是正确的,当你使用钩子时,不可能获得新的外观.相反,您需要使用IFileDialogCustomize接口来自定义对话框.这样功能较弱,但会导致外观和行为与对话框的标准部分更加一致.
| 归档时间: |
|
| 查看次数: |
2461 次 |
| 最近记录: |