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
李陽 閱讀(544)
評論(0) 編輯 收藏 引用 所屬分類:
C++