WEB开发网
开发学院软件开发VC 在VC6中实现OFN_EXPLORER风格的文件对话框 阅读

在VC6中实现OFN_EXPLORER风格的文件对话框

 2009-02-27 20:03:07 来源:WEB开发网   
核心提示:1 问题的提出 MFC类库中的CFileDialog类为用户提供了便捷的文件对话框,并且支持Windows 2000和XP中的新EXPLORER风格界面(指定OFN_EXPLORER风格,在VC6中实现OFN_EXPLORER风格的文件对话框,见图1),图1 新EXPLORER风格界面的文件对话框 在VC6中使用CFi

1 问题的提出

MFC类库中的CFileDialog类为用户提供了便捷的文件对话框,并且支持Windows 2000和XP中的新EXPLORER风格界面(指定OFN_EXPLORER风格,见图1)。

在VC6中实现OFN_EXPLORER风格的文件对话框

图1 新EXPLORER风格界面的文件对话框

在VC6中使用CFileDialog,即使指定了OFN_EXPLORER风格,在Windows 2000和XP上运行,也还是老样子(见图2)。可同样的程序,拿到VC2005上编译之后,再运行,却又是新风格了。

在VC6中实现OFN_EXPLORER风格的文件对话框

图2 旧风格界面的文件对话框

而目前VC6在某些领域的应用还较为广泛,那么为能使得开发的程序界面美观统一,有没有解决办法,使VC6也能显示新风格的文件对话框呢?

2 原因分析

首先,运行的系统必须是Windows 2000以上,才能支持这个界面风格。

基于上述对问题的描述,在VC2005上就能实现,从而将查找原因的方向定位在VC6和VC2005中关于CFileDialog的区别上。

(1)OPENFILENAME定义

查看OPENFILENAME的定义,可以用右键跳转到定义处,或在2005中查看代码定义窗口。

VC2005中OPENFILENAME的定义如下:

typedef struct tagOFNA {

       DWORD        lStructSize;

       ……

       // 以上同VC6中的定义

#if (_WIN32_WINNT >= 0x0500)

       void *           pvReserved;

       DWORD        dwReserved;

       DWORD        FlagsEx;

#endif // (_WIN32_WINNT >= 0x0500)

} OPENFILENAMEA, *LPOPENFILENAMEA;

1 2 3 4  下一页

Tags:VC 实现 OFN

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接