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

 时间:2026-02-13 19:47:04

1、获取目录路径方法1:

[cpp] view plain copy

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、获取目录路径方法2:

[cpp] view plain copy

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);  

}   

3、获取文件路径:

[cpp] view plain copy

CFileDialog dlg(TRUE);  

if(dlg.DoModal()==IDOK)  

{  

    m_filepath=dlg.GetPathName();  

    UpdateData(FALSE);  

}  

  • 电路仿真软件multisim教程
  • 如何在AD中放置总线五输入与门?
  • multisim怎么把画布扩大
  • Multisim中示波器怎么使用
  • Multisim怎么放置单刀双掷开关?
  • 热门搜索
    吉他调音器怎么用 中国传媒大学怎么样 小龙虾怎么清洗 台式电脑亮度怎么调 cpu使用率100怎么办 油饼怎么做 狐臭怎么治 泰拉瑞亚骷髅王怎么打 手机支架怎么用 电源已接通未充电怎么办