问题
我刚刚在几台机器上安装了Windows® 2000 Release Candidate 1,不知道怎样在我的MFC应用中得到具有新的Outlook风格栏目的Open对话框(见图1)。
Figure 1 The New Open Dialog
我能否只设置一个标志,或者我是否需要一个新的头文件和一个新的公共对话框的DDL?我注意到一些旧的应用程序如Notepad好像可以得到新的Open对话框而无须重新编译,但它们不是MFC应用。理想情况,我希望在Windows 9x 和Windows NT®下得到一个使用旧对话框的应用,而在Windows 2000下使用新的对话框。
Warren Stevens
回答
这个问题恐怕没有令你高兴的答复。Windows 2000新的Open对话框是用一个新版本的commdlg.dll实现的,它在边上包含“Places”栏目。显示它的函数是GetOpenFileName,与在Windows 9x 和Windows NT®下使用的相同。然而,GetOpenFileName现在使用一个新版本的OPENFILENAME,这是一个在你的应用和对话框之间传递信息的结构。新的结构有一些额外的成员:
typedef struct tagOFN {
DWORD lStructSize; // 很重要!
•••
// 正想你总是知道并且喜欢的那样
#if (_WIN32_WINNT >= 0x0500)