您的位置:首页 > 编程语言

常用代码备份--MFC按钮选择文件/文件夹

2016-02-23 10:02 519 查看
在MFC下,通过按键选择某个文件,并将路径在编辑框中显示出来,该段代码仅作自己备用

void CXXXXDlg::OnBnClickedOpenButton()
{
// TODO: Add your control notification handler code here
// 设置过滤器
TCHAR szFilter[] = _T("所有文件(*.*)|*.*||");
// 构造打开文件对话框
CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, this);
CString strFilePath;

// 显示打开文件对话框
if (IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();
SetDlgItemText(IDC_OPEN_EDIT, strFilePath);
}

CEdit* pBoxOne;
pBoxOne = (CEdit*) GetDlgItem(IDC_OPEN_EDIT);
pBoxOne-> GetWindowText(m_OpenPath);
}


上面代码是选择文件,下面这段代码选择文件夹

void CLogToolDlg::OnBnClickedOpenButton()
{
// TODO: Add your control notification handler code here

char str[30];
m_OpenPath=OpenFolder();
TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||");
CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, this);
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
//strFilePath = fileDlg.GetPathName();
SetDlgItemText(IDC_OPEN_EDIT, m_OpenPath);

}
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: