CFileDialog類(lèi)在允許一次選擇多個(gè)文件(OFN_ALLOWMULTISELECT)時(shí),容易出現(xiàn)存放文件名的緩沖區(qū)長(zhǎng)度不夠的問(wèn)題,此時(shí)選擇后打開(kāi)時(shí)會(huì)返回ID_CANCEL,默認(rèn)的長(zhǎng)度是260,如圖:

所以要把它的長(zhǎng)度設(shè)大些,代碼如下:
CFileDialog dlg( TRUE, "*.mesh", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "Mesh Files (*.mesh)|*.mesh||", AfxGetMainWnd() );
DWORD MAXFILE = 2048; //file name 緩沖區(qū)長(zhǎng)度
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
李陽(yáng) 閱讀(544)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
C++