引言:关于CFileDialog的文件过滤器的写法,看了几个博客感觉都是乱七八杂的,公司内部的前人写的也是有点乱。仔细查了查微软的写法,才发现其实有写的很清晰的格式。
个人技术博客(文章整理+源码): https://zobolblog.github.io/LearnWinAPI/
最终效果:
1. 具体写法:
实际上,微软的文件过滤器就是一串字符串,每个小节直接用“|”隔开。文字说明1 | 后缀1 | 文字说明2 | 后缀2 | 文字说明3 | 后缀3
static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|") _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|") _T("*.xlc; *.xls|All Files (*.*)|*.*||");
前面的“Chart Files (*.xlc)”其实都是给人眼看的,程序读取的都是后面的 *.xlc
源码:
static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|") _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|") _T("*.xlc; *.xls|All Files (*.*)|*.*||"); CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter,NULL,NULL,1);
效果:
本人个人技术博客: https://zobolblog.github.io/LearnWinAPI/ ,个人公众号:zobol的魔法藏书室,windows编程技术讨论群:811851762。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。