CFileDialog文件对话框用法

/(1)选择文件

CFileDialog dlg(TRUE, _T("*.bmp"), NULL,
        OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
        _T("图片文件(*.bmp;*.png)|*.png;*.bmp| All Files (*.*) |*.*||"), NULL);
// 打开文件对话框的标题名
dlg.m_ofn.lpstrTitle = _T("选择图片");
    
if (dlg.DoModal() == IDOK)
{
    CString FilePathName = dlg.GetPathName(); //路径名+文件名
    CString FileName = dlg.GetFileName();  //文件名
    int Which = FileName.Find('.');
    CString OnlyFileName = FileName.Left(Which); //无扩展的文件名
    // 获取扩展名
    int nPos = FileName.ReverseFind('.');
    CString  csFileExtName = FileName.Right(FileName.GetLength() - nPos - 1); 
    m_strUserPicName = strUserName + _T(".") + csFileExtName;
    m_strUserPicPath = GetAppllicationPath() +_T("User\\")+ m_strUserPicName;
    BOOL ret = CopyFile(FilePathName, m_strUserPicPath,TRUE);
            
    CRect rt;
    m_picUserIcon.GetClientRect(&rt);
    this->InvalidateRect(rt);
}
else
{
    return;
}



(2)保存文件

CFileDialog dlg(FALSE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    _T("EXCEL文件(*.xlsx)|*.xlsx| All Files (*.*) |*.*||"), AfxGetMainWnd());

// 打开文件对话框的标题名
dlg.m_ofn.lpstrTitle = _T("输入导出的Excel文件名");

if (dlg.DoModal() == IDOK)
{
    CString FilePathName = dlg.GetPathName();     //路径名+文件名
    CString FileName     = dlg.GetFileName();     //文件名
    INT  index           = dlg.m_ofn.nFilterIndex;
    if (1 == index)
    {
        FilePathName += _T(".xlsx");
        USES_CONVERSION;
        if (_access(W2A(FilePathName), 0) == 0)
        {
            CString strQuery;
            strQuery.Format(_T("%s 已经存在,要替换掉吗?"), FilePathName);
            if (IDNO == ::MessageBox(NULL, strQuery, _T("文件覆盖"), 
                        MB_ICONQUESTION | MB_YESNO))
            {
                             //保存操作
            }
        }
    }
}
else
{
    return;
}


(3)选择文件夹

CString CScale3DCTab2Dlg::SelFilePath()
{
    TCHAR           szFolderPath[MAX_PATH] = { 0 };
    CString         strFolderPath = TEXT("");

    BROWSEINFO      sInfo;
    ::ZeroMemory(&sInfo, sizeof(BROWSEINFO));
    sInfo.pidlRoot = 0;
    sInfo.lpszTitle = _T("请选择生成的安装文件Install.exe的路径");
    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;
}

转自:https://blog.51cto.com/u_9233403/2094577

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值