2005里面使用打开文件对话框为什么不行?解决思路
2005里面使用打开文件对话框为什么不行?
CString fileName;
wchar_t szFilter[]=_T( "所有文件(*.*)|*.* ");
CFileDialog *pDlg=new CFileDialog(TRUE,_T( "* "),_T( "*.* "),OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilter);
pDlg-> GetOFN().lpstrFile=fileName.GetBuffer(2048);
pDlg-> GetOFN().nMaxFile=MAX_FILE_NUM;
pDlg-> GetOFN().Flags|=OFN_ALLOWMULTISELECT;
if(pDlg-> DoModal()==IDOK)
{
TRACE( "%s ",fileName);
}
pDlg-> GetOFN().lpstrFile=NULL;
delete pDlg;
fileName.ReleaseBuffer(-1);
问题:
pDlg-〉DoModal()总是返回IDCANCEL,不明白,同样的代码在VC6里没有问题的。很疑惑。
------解决方案--------------------
返回IDCANCEL是你点击了cancel按钮的结果啊
CString fileName;
wchar_t szFilter[]=_T( "所有文件(*.*)|*.* ");
CFileDialog *pDlg=new CFileDialog(TRUE,_T( "* "),_T( "*.* "),OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilter);
pDlg-> GetOFN().lpstrFile=fileName.GetBuffer(2048);
pDlg-> GetOFN().nMaxFile=MAX_FILE_NUM;
pDlg-> GetOFN().Flags|=OFN_ALLOWMULTISELECT;
if(pDlg-> DoModal()==IDOK)
{
TRACE( "%s ",fileName);
}
pDlg-> GetOFN().lpstrFile=NULL;
delete pDlg;
fileName.ReleaseBuffer(-1);
问题:
pDlg-〉DoModal()总是返回IDCANCEL,不明白,同样的代码在VC6里没有问题的。很疑惑。
------解决方案--------------------
返回IDCANCEL是你点击了cancel按钮的结果啊