温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CFileDialog文件对话框用法

发布时间:2020-08-01 23:17:13 来源:网络 阅读:9709 作者:Chinayu2014 栏目:编程语言

(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;
}

选择文件夹

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI