常用代码备份--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; }
相关文章推荐
- Java transient关键字的使用
- Yii2.0数据库查询实例(三)
- java 图片质量压缩
- C#ReadLine()和ReadKey()区别
- 利用php实现最简单的爬虫
- [Spring]02_Spring框架和MVC原理
- java实现定时任务的三种方法
- How to concatenate two matrices in Python?
- java spring mvc时间String转Date(二)
- python爬虫(抓取百度新闻列表)
- Java transient关键字使用
- jpython LookupError: unknown encoding 'ms936' 问题解决
- myeclipse添加server library
- 【python】编程语言入门经典100例--11
- Java生成验证码工具
- Java 反射机制 .class .getClass() Class.forName("") .TYPE int void
- python xlsxwriter 在 flask 中的使用
- python windows报错ConfigParser.NoSectionError: No section: 'mysql'
- FTP的主动模式(PORT Mode)及被动模式(Passive Mode)
- Eclipse修改svn地址