在VC6中实现OFN_EXPLORER风格的文件对话框
2009-02-27 20:03:07 来源:WEB开发网1 问题的提出
MFC类库中的CFileDialog类为用户提供了便捷的文件对话框,并且支持Windows 2000和XP中的新EXPLORER风格界面(指定OFN_EXPLORER风格,见图1)。
图1 新EXPLORER风格界面的文件对话框
在VC6中使用CFileDialog,即使指定了OFN_EXPLORER风格,在Windows 2000和XP上运行,也还是老样子(见图2)。可同样的程序,拿到VC2005上编译之后,再运行,却又是新风格了。
图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;
更多精彩
赞助商链接