查看单个帖子
旧 2009-04-16, 08:01 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】关于cfiledialog的应用(多选文件).................

关于cfiledialog的应用(多选文件).................
关于cfiledialog的应用(多选文件).................
cstring filepath;
cfiledialog file(true,0,0,ofn_allowmultiselect | ofn_enablesizing);
if(file.domodal() == idcancel)
return;
position pos = file.getstartposition();
while(pos != null)
{
filepath = file.getnextpathname(pos);
if(m_list.findstring(0,filepath) == -1)
{
m_list.addstring(filepath);
}
}
为什么有时候多选文件的时候选不上?
cfiledialog自己有个存储选中的文件名和路径名的buffer, 不过默认只有256个字符长, 多选的时候所有的文件名和路径名连在一起如果长于256个字符, 多出的部分就会被无视..
用ofn_allowmultiselect的时候用户必须自己设立足够大的buffer空间, 然后告诉cfiledialog使用用户的buffer存储选中的文件/路径名.
参考vc++ msdn下的cfiledialog, m_ofn, lpstrfile, nmaxfile项目.
virtue is like a rich stone, best plain set.
-- francis bacon, <of beauty>
问题已经解决,谢谢楼上的.......................
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)