我是靠谱客的博主 着急石头,最近开发中收集的这篇文章主要介绍MFC选择文件对话框和选择文件夹对话框,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转::https://www.cnblogs.com/zhqshome/p/7063730.html
选择单个文件对话框:

CString strFile = _T("");

CFileDialog    dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"), NULL);

if (dlgFile.DoModal())
{
     strFile = dlgFile.GetPathName();
}

选择多个文件对话框

void CBugReportDlg::SelectFiles( vector<CString>& all_sel_files )
{
    CFileDialog dlg(TRUE, _T("*.jpg"), NULL, OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, _T("Image Files(*.jpg)|*.jpg|"), NULL); 
    dlg.m_ofn.lpstrTitle = _T("选择图片"); 
    CString filename; 
    if(dlg.DoModal() == IDOK) 
    { 
        POSITION fileNamesPosition = dlg.GetStartPosition(); 
        while(fileNamesPosition != NULL) 
        { 
            filename = dlg.GetNextPathName(fileNamesPosition); 
            all_sel_files.push_back(filename);
        }   
    } 

}

选择文件夹
CString CBugReportDlg::SelFilePath()
{
TCHAR szFolderPath[MAX_PATH] = {0};
CString strFolderPath = TEXT(“”);

BROWSEINFO      sInfo;  
::ZeroMemory(&sInfo, sizeof(BROWSEINFO));  
sInfo.pidlRoot   = 0;  
sInfo.lpszTitle   = _T("请选择处理结果存储路径");  
sInfo.ulFlags   = BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_DONTGOBELOWDOMAIN;  
sInfo.lpfn     = NULL;  

// 显示文件夹选择对话框  
LPITEMIDLIST lpidlBrowse = ::SHBrowseForFolder(&sInfo);   
if (lpidlBrowse != NULL)  
{  
    // 取得文件夹名  
    if (::SHGetPathFromIDList(lpidlBrowse,szFolderPath))    
    {  
        strFolderPath = szFolderPath;  
    }  
}  
if(lpidlBrowse != NULL)  
{  
    ::CoTaskMemFree(lpidlBrowse);  
}  

return strFolderPath;  

}

最后

以上就是着急石头为你收集整理的MFC选择文件对话框和选择文件夹对话框的全部内容,希望文章能够帮你解决MFC选择文件对话框和选择文件夹对话框所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部