获取目录路径方法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);
- }
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);
- }
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);
}