大家好,
我是Peter Michael Osera,Visual C++编译器前端的程序管理器。 随着VC++团队假期的结束,我们想和大家分享一些新特性,这些新特性是我们很高兴加入Orcas的。 至于我,我一直在帮助图书馆团队更新MFC,以使用新的vistaui元素Aero。 我很高兴地报告,我们最近完成了将新的Vista样式的文件对话框集成到MFC中的工作!
最好的一点是,作为客户,您不需要做任何特殊的事情来利用此功能。 由于我们的首要任务是尽可能无缝地过渡到Vista,所以您只需使用CFileDialog的MFC代码,在Orcas下重新编译它,瞧!,您将使用新的,花哨的Vista对话框。 我们还允许适当的回退行为,因此如果您在Vista下的Orcas中编译应用程序,然后在windowxp下运行,那么旧的文件对话框将被利用。 如果您愿意,如果您需要访问旧的功能(如模板对话框),甚至可以使用Vista下的旧式文件对话框。
在封面之下,新的文件对话框通过一组新的COM接口公开,这些接口统称为公共项对话框。 由于这与旧的公共文件对话框API有很大的不同,我们的大部分工作都是通过CFileDialog(MFC)API尽可能地嵌入新的公共项对话框功能。 最终的结果是您可以使用与以前相同的界面来控制旧对话框和新对话框。
当然,由于底层文件对话框对象的重新设计,在使用Vista对话框时,CFileDialog类的一些旧功能不受支持。 特别是,由于新的Vista对话框不再支持hwnd模板自定义,如果对CFileDialog对象调用SetTemplate,它将抛出cnotsupportdexception。 与windows团队一起,我们建议您使用IFileDialogCustomize COM界面向对话框对象添加控件,而不是使用模板。 本着MFC的精神,我们为所有公共项dialog COM接口公开了getter,这样您就可以获得通过CFileDialog未公开的其余功能。 通常,如果您广泛自定义CFileDialog对象,请确保在更新的MSDN文档可用时查看它,以确保新对话框支持您使用的方法、事件和标志。
我希望您在将应用程序迁移到Vista时发现此功能很有用。 请随时在下一个Orcas CTP中试用,并通过Connect向我们提供任何反馈。 我们期待着您的回音!
谢谢!
彼得·迈克尔·奥塞拉
Visual C++编译程序