CFileDialog类在允许一次选择多个文件(OFN_ALLOWMULTISELECT)时,容易出现存放文件名的缓冲区长度不够的问题,此时选择后打开时会返回ID_CANCEL,默认的长度是260,如图:
所以要把它的长度设大些,代码如下:
CFileDialog dlg( TRUE, "*.mesh", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "Mesh Files (*.mesh)|*.mesh||", AfxGetMainWnd() );
DWORD MAXFILE = 2048; //file name 缓冲区长度
char* pc = new char[ MAXFILE ];
dlg.m_ofn.lpstrFile = pc;
dlg.m_ofn.nMaxFile = MAXFILE;
dlg.m_ofn.lpstrFile[0] = NULL;
dlg.DoModal();
delete [] pc;
posted on 2008-04-03 17:17
李阳 阅读(513)
评论(0) 编辑 收藏 引用 所属分类:
C++