打开文件对话框使用实例
来源:互联网 发布:柯炳生 知乎 编辑:程序博客网 时间:2024/04/29 16:41
1、打开文件对话框属于Windows通用对话框!
2、使用API函数GetOpenFileName可以显示打开文件对话框并返回所选文件。
3、MFC对GetOpenFileName的封装类为CFileDialog。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1、建立基于对话框的MFC应用程序OpenFileDemo
2、在主对话框上添加一个文本框,其ID为IDC_EDT_RESULT,并选中"Horizontal scroll"、"Vertical scroll"、"Multiline"
3、在主对话框上添加一个Check Box控件,文本修改为“多选” , ID改为IDC_CHK_MULTISEL,并关联控件型变量m_chkMultiSel。
4、将主对话框上“确定”按钮改为“SDK”,ID改为ID_BTN_SDK
5、将“取消”按钮改为“MFC”,ID改为IDC_BTN_MFC
///SDK方式调用打开文件对话框处理函数、void COpenFileDemoDlg::OnBtnSdk() {// TODO: Add your control notification handler code here// TODO: Add extra validation here///存放文件的缓冲TCHAR szBuffer[MAX_PATH*10] = {0};///初始化结构OPENFILENAME ofn = {0};ofn.lStructSize = sizeof(ofn);ofn.hwndOwner = m_hWnd;///MFC使用"|"作为分隔符,而SDK使用"\0"作为分隔符ofn.lpstrFilter = _T("文本文件(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0");ofn.lpstrInitialDir = _T("c:\\");ofn.lpstrFile = szBuffer;ofn.nMaxFile = sizeof(szBuffer) / sizeof( *szBuffer);ofn.nFilterIndex = 0 ;ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER;///如果多选,加上多选标记if(m_chkMultiSel.GetCheck())ofn.Flags |= OFN_ALLOWMULTISELECT;////*************************///显示打开文件对话框//******************************BOOL bSel = GetOpenFileName(&ofn);if(!bSel){SetDlgItemText(IDC_EDT_RESULT ,_T("选择被取消\n"));return ;}///获得所选文件if(m_chkMultiSel.GetCheck()){////如果有多选标志,缓冲区第一节为路径,文件名在路径后TCHAR szPath[MAX_PATH] = {0};CString str;int nLen ; TCHAR *p = ofn.lpstrFile + ofn.nFileOffset ;_tcsncpy(szPath , ofn.lpstrFile , ofn.nFileOffset );if(szPath[ofn.nFileOffset - 1 ] != '\\'){_tcscat(szPath , _T("\\" ));}while(true){nLen = _tcslen(p);if(nLen == 0)break;str += szPath;str += p ;str += _T("\r\n");p += nLen + 1; }SetDlgItemTex(IDC_EDT_RESULT, str);}else{///如果没有多选标志,缓冲区内为完整文件名SetDlgItemText(IDC_EDT_RESULT,szBuffer);}}
///MFC方式调用打开文件对话框响应函数void COpenFileDemoDlg::OnBtnMfc() {// TODO: Add your control notification handler code here ///定义缓冲和对话框 TCHAR szBuffer[MAX_PATH*10] = {0};CFileDialog dlg(TRUE , NULL ,NULL , OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST ,_T("文本文件(*.txt) | *.txt | 所有文件(*.*)|*.*||") ,this);dlg.m_ofn.lpstrInitialDir = _T("c:\\");///如果多选,需要给对话框分配更大的缓冲区以保证更多的文件名if(m_chkMultiSel.GetCheck()){
///给对话框的m_ofn成员重新分配一个更大的缓冲区来接受文件名。否则在文件名加起来超过260个字符时,函数就会调用失败dlg.m_ofn.lpstrFile = szBuffer;dlg.m_ofn.nMaxFile = sizeof(szBuffer) / sizeof(*szBuffer);dlg.m_ofn.Flags |= OFN_ALLOWMULTISELECT;}///显示对话框if(dlg.DoModal() != IDOK){SetDlgItemText(IDC_EDT_RESULT ,_T("选择被取消."));return ; }///得到所选文件if(m_chkMultiSel.GetCheck()){///如果有多选标志,需要用循环获取文件名CString strFile;POSITION pos = dlg.GetStartPosition();while(pos){strFile += dlg.GetNextPathName(pos);strFile += _T("\r\n");}SetDlgItemText(IDC_EDT_RESULT ,strFile);}else{///如果没有所选标志,可以直接获得文件名SetDlgItemText(IDC_EDT_RESULT ,dlg.GetPathName());}}
- 打开文件对话框使用实例
- 使用打开保存文件对话框
- 使用打开保存文件对话框
- 使用打开保存文件对话框
- 使用mfc打开文件对话框
- “保存文件”对话框使用实例
- 使用文件对话框打开和保存文件
- C# 使用打开保存文件对话框
- 控制台程序使用打开文件对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- openfilename打开文件对话框的使用
- 使用SHBrowseForFolder函数打开文件目录对话框
- C# 使用打开保存文件对话框
- C# 使用打开保存文件对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- winform,C#,打开文件对话框的使用
- 使用SHBrowseForFolder函数打开文件目录对话框
- 软件开发一点理解和体会
- 继承(Virtual)与组合
- C# 中的委托和事件
- Java中重写Object类的equals方法和Hashcode方法的注意事项
- VS2010 运行速度加快方法
- 打开文件对话框使用实例
- 《HTTP权威指南》读书笔记---URL
- linux开启防火墙端口和查看,开启相关端口号
- python 安装TWisted
- zoj2615-Cells
- 什么是cae 封装
- 分解质因数
- Understanding ELF using readelf and objdump
- owl本体映射