在文件对话框中,打开文件盒打开文件夹是完全不同的。
打开文件是由某文件夹一直打开到目标文件,目标文件不能是文件夹;
打开文件夹则是选择某个文件夹后得到该文件夹的绝对路径。
下面记录下测试代码:(记录比记忆要靠谱!)
打开文件对话框:
CString FilePathName;
CFileDialog ImageDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("BMP Files (*.bmp)|*.bmp"), NULL);
if (ImageDlg.DoModal() == IDOK)
{
FilePathName = ImageDlg.GetPathName();
m_imagepath = FilePathName;//m_imagepath是EDIT控件的一个变量
UpdateData(FALSE);
}
else
{
return;
}
打开文件夹对话框:
CString strDirName;
BROWSEINFO bi; bi.hwndOwner = ::GetFocus(); bi.pidlRoot = NULL; bi.lpszTitle = _T("请选择您的文件夹"); bi.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS; bi.lpfn = NULL; bi.lParam =0; bi.iImage =0;
LPITEMIDLIST pItemIDList
LPITEMIDLIST pItemIDList = ::SHBrowseForFolder(&bi);
if(pItemIDList == NULL)
{
return ;
}
::SHGetPathFromIDList(pItemIDList, (LPWSTR)(LPCTSTR)strDirName);
CString str = strDirName;
if(str !=""&& str.Right(1) !='\\')
str +='\\';
m_imagepath = str;
UpdateData(FALSE);