CFileDialog在多选模式下无法选择过多的文件
来源:互联网 发布:武汉电视台网络直播 编辑:程序博客网 时间:2024/06/08 03:55
最近做一个备份工具。工具功能很简单就是将若干文件打包备份以及Oracle数据库备份 。文件备份自然使用CFileDialog来选择要备份的文件。代码很快搞定,进入测试发现选择文件时无法选择过多的文件,当选择的文件数超过一定的数量(没有仔细计算)时.DoModal()给了我个IDCANCEL。郁闷了!!??
后来想到用函数
BOOL GetOpenFileName(
LPOPENFILENAME lpofn
);
这个函数需要一个结构OPENFILENAME作为参数,来看看该结构的定义
typedef struct tagOFN { /* ofn */
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCSTR lpstrFilter;
LPSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPSTR lpstrFile;
DWORD nMaxFile;
LPSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPSTR lpstrInitialDir;
LPCSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCSTR lpTemplateName;
} OPENFILENAME;
通过阅读msdn我们知道能取得文件数量主要是受到lpstrFile和nMaxFile两个成员的控制。如果直接使用GetOpenFileName()方法来处理可以非常自由的完成,但是这样处理的细节较多,搞不好还有很多的bug。
于是只有在CFileDialog上面打主意了,仔细察看CFileDialog类你会发现一个指向OPENFILENAME结构指针对象m_pOFN。他管理着CFileDialog的工作。 CFileDialog设定nMaxFile为常量MAX_PATH(260),这个值太小无法选择更多的文件。如果你想选择更多的话,只需要修改m_pOFN对象即可。
第一次写blog有什么错误还请海涵。
后来想到用函数
BOOL GetOpenFileName(
LPOPENFILENAME lpofn
);
这个函数需要一个结构OPENFILENAME作为参数,来看看该结构的定义
typedef struct tagOFN { /* ofn */
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCSTR lpstrFilter;
LPSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPSTR lpstrFile;
DWORD nMaxFile;
LPSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPSTR lpstrInitialDir;
LPCSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCSTR lpTemplateName;
} OPENFILENAME;
通过阅读msdn我们知道能取得文件数量主要是受到lpstrFile和nMaxFile两个成员的控制。如果直接使用GetOpenFileName()方法来处理可以非常自由的完成,但是这样处理的细节较多,搞不好还有很多的bug。
于是只有在CFileDialog上面打主意了,仔细察看CFileDialog类你会发现一个指向OPENFILENAME结构指针对象m_pOFN。他管理着CFileDialog的工作。 CFileDialog设定nMaxFile为常量MAX_PATH(260),这个值太小无法选择更多的文件。如果你想选择更多的话,只需要修改m_pOFN对象即可。
第一次写blog有什么错误还请海涵。
- CFileDialog在多选模式下无法选择过多的文件
- CFileDialog无法选择多个文件的解决办法
- CFileDialog 选择多个文件打开同时不同目录下,文件绝对路径不正确的问题
- CFileDialog选择多个文件
- CFileDialog选择多个文件
- 使用MFC的CFileDialog实现选择多个文件
- 使用MFC的CFileDialog一次选择多个文件
- CFileDialog文件选择对话框的使用
- CFileDialog文件选择对话框的使用
- CFileDialog文件选择对话框的使用
- 文件选择对话框的使用(CFileDialog)
- CFileDialog文件选择对话框的使用
- CFileDialog文件选择对话框的使用
- MFC文件选择对话框CFileDialog的使用
- CFileDialog文件选择对话框的使用
- CFileDialog文件多选
- [转载] 使用CFileDialog选择多个文件
- 使用CFileDialog选择多个文件
- Code & Comments For Basic Tutorial 6 in Ogre3d Wiki
- myeclipse如何注册?
- fw:中国游客在国外旅游: 三大陋习招歧视
- fw:干到30,你还能干啥?
- fw:中国城市污染问题严重 [2005]
- CFileDialog在多选模式下无法选择过多的文件
- Runescape Gold
- 怎样用编程的方法操作杀毒软件
- Enterprise Library: Data Access Application Block类设计分析篇
- 在VC++中访问和修改系统注册表
- 《高质量C/C++编程》学习笔记3(内存)
- Enterprise Library: Data Access Application Block使用向导,Part 1
- fw:两千人模拟天安门升旗仪式为绝症女孩圆梦
- 世界睡眠日的由来