在MFC下,通过按键选择某个文件,并将路径在编辑框中显示出来,该段代码仅作自己备用
void CXXXXDlg::OnBnClickedOpenButton()
{
// 设置过滤器
TCHAR szFilter[] = _T("Excel文件(*.xlsx;*.xls)|*.xlsx;*.xls||");
// 构造打开文件对话框
CFileDialog fileDlg(TRUE, _T("xlsx"), NULL, 0, szFilter, this);
CString strFilePath;
// 显示打开文件对话框
if (IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();
SetDlgItemText(IDC_EDIT2, strFilePath);
}
}
上面代码是选择文件,下面这段代码选择文件夹
void CLogToolDlg::OnBnClickedOpenButton()
{
// 设置过滤器
TCHAR szFilter[] = _T("Excel文件(*.xlsx;*.xls)|*.xlsx;*.xls||");
// 构造打开文件对话框
CFileDialog fileDlg(TRUE, _T("xlsx"), NULL, 0, szFilter, this);
CString strFilePath;
// 显示打开文件对话框
if (IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();
SetDlgItemText(IDC_EDIT2, strFilePath);
}
}
CString CLogToolDlg::OpenFolder()
{
BROWSEINFO bi;
char szFolder[_MAX_PATH];
CString strFolder = _T("");
ZeroMemory(&bi,sizeof(BROWSEINFO));
//添加提示语句
bi.lpszTitle= _T("请选择文件夹");
//添加"新建文件夹项"和"编辑框"
bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX;
// 显示一个对话框让让用户选择文件夹
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
memset(szFolder, 0, sizeof(szFolder));
if (pidl != NULL)
{
SHGetPathFromIDList(pidl, szFolder);
//保存文件夹路径存
strFolder.Format(_T("%s"), szFolder);
//MessageBox(strFolder);
}
return strFolder;
}