获取目录路径方法1:
CString FullPath;
BROWSEINFO bi; //BROWSEINFO结构体
TCHAR Buffer[512]="";
TCHAR FullPaths[512]="";
bi.hwndOwner = m_hWnd; //m_hWnd你的程序主窗口
bi.pidlRoot = NULL;
bi.pszDisplayName = Buffer; //返回选择的目录名的缓冲区
bi.lpszTitle = "请选择BMP文件"; //弹出的窗口的文字提示
bi.ulFlags = NULL;//BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_BROWSEFORCOMPUTER ; //只返回目录。其他标志看MSDN
bi.lpfn = NULL; //回调函数,有时很有用
bi.lParam = 0;
bi.iImage = 0;
ITEMIDLIST* pidl = ::SHBrowseForFolder (&bi); //显示弹出窗口,ITEMIDLIST很重要
::SHGetPathFromIDList (pidl,FullPaths); //在ITEMIDLIST中得到目录名的整个路径
if(FullPaths[0]!=NULL)
{
m_filepath=FullPaths;
UpdateData(FALSE);
}
获取目录路径方法2:
TCHAR szPath[MAX_PATH]={0};
LPITEMIDLIST pitem;
BROWSEINFO info;
::ZeroMemory(&info,sizeof(info));
info.hwndOwner=this->m_hWnd;
info.lpszTitle=_T( "Choose the Folder: ");
info.pszDisplayName = szPath;
if(pitem=::SHBrowseForFolder(&info))
{
::SHGetPathFromIDList(pitem,szPath);
m_filepath=szPath;
UpdateData(FALSE);
}
获取文件路径:
CFileDialog dlg(TRUE);
if(dlg.DoModal()==IDOK)
{
m_filepath=dlg.GetPathName();
UpdateData(FALSE);
}