MFC获取打开目录路径和获取文件路径

获取目录路径方法1:

[cpp] view plain copy
print ?
  1. CString  FullPath;  
  2. BROWSEINFO bi;                        //BROWSEINFO结构体  
  3. TCHAR Buffer[512]=“”;  
  4. TCHAR FullPaths[512]=“”;  
  5. bi.hwndOwner = m_hWnd;                    //m_hWnd你的程序主窗口  
  6. bi.pidlRoot = NULL;  
  7. bi.pszDisplayName = Buffer;                //返回选择的目录名的缓冲区  
  8. bi.lpszTitle = ”请选择BMP文件”;            //弹出的窗口的文字提示  
  9. bi.ulFlags = NULL;//BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_BROWSEFORCOMPUTER ;    //只返回目录。其他标志看MSDN  
  10. bi.lpfn = NULL;                        //回调函数,有时很有用  
  11. bi.lParam = 0;  
  12. bi.iImage = 0;  
  13. ITEMIDLIST* pidl = ::SHBrowseForFolder (&bi);        //显示弹出窗口,ITEMIDLIST很重要  
  14. ::SHGetPathFromIDList (pidl,FullPaths);        //在ITEMIDLIST中得到目录名的整个路径  
  15. if(FullPaths[0]!=NULL)  
  16. {  
  17.     m_filepath=FullPaths;  
  18.     UpdateData(FALSE);  
  19. }  
  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:

[cpp] view plain copy
print ?
  1. TCHAR   szPath[MAX_PATH]={0};  
  2. LPITEMIDLIST   pitem;  
  3. BROWSEINFO   info;  
  4. ::ZeroMemory(&info,sizeof(info));  
  5. info.hwndOwner=this->m_hWnd;    
  6. info.lpszTitle=_T( ”Choose   the   Folder: ”);  
  7. info.pszDisplayName = szPath;  
  8. if(pitem=::SHBrowseForFolder(&info))  
  9. {  
  10.     ::SHGetPathFromIDList(pitem,szPath);  
  11.     m_filepath=szPath;  
  12.     UpdateData(FALSE);  
  13. }   
    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);
    } 
获取文件路径:

[cpp] view plain copy
print ?
  1. CFileDialog dlg(TRUE);  
  2. if(dlg.DoModal()==IDOK)  
  3. {  
  4.     m_filepath=dlg.GetPathName();  
  5.     UpdateData(FALSE);  
  6. }  
    CFileDialog dlg(TRUE);
    if(dlg.DoModal()==IDOK)
    {
        m_filepath=dlg.GetPathName();
        UpdateData(FALSE);
    }



你可能感兴趣的:(MFC)