MFC选择文件对话框和选择文件夹对话框

选择单个文件对话框

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 CDlg::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 CDlg::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;  
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值