CFileDialog类
函数原形:
explicit CFileDialog(
BOOL bOpenFileDialog, //ture打开,false保存
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL,
DWORD dwSize = 0
);
选择多个文件,最重要的是加上OFN_ALLOWMULTISELECT标志。当用户选择多个文件,CFileDialog会把选择后的文件名拷贝到一个缓冲区,默认这个缓冲区有200多个字符,这对于很多情况来说太小了。你可以将m_ofn.lpstrFile替换成自己的缓冲区指针:
char sBuffer[6000];
sBuffer[0] = 0;
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT |
OFN_ALLOWMULTISELECT,
"C++ source|*.cpp|All files|*.*||");
dlg.m_ofn.lpstrFile = sBuffer;
dlg.m_ofn.nMaxFile = 6000;
if(dlg.DoModal()==IDOK)
{
POSITION pos=dlg.GetStartPosition();
while (pos != NULL)
{
fi++; //放入CString file[255]数组中保存
file[fi]=dlg.GetNextPathName(pos);