关于OpenFileDialog在MFC和OPENFILENAME在win32中的使用
2013-07-07 22:27
603 查看
大多数windows运用程序都需要处理文件中的数据,所以需要一个接口打开和保存文件;比如,我们经常使用的word,可以看到非常标准的打开对话框,windows已经帮我们提供了很好的接口,我们会使用就好,我们主要介绍两种:
1,win32环境的api风格,代码如下:
2,MFC环境的类的风格(或者说是C#或者VB中的控件风格),代码如下:
C#风格如下:
可以看出,这三个风格其实很想象,最主要的就是那么几个属性,Filter表示可以打开的文件的类型,InitialDir表示默认打开的路径,defext表示默认打开的文件类型
1,win32环境的api风格,代码如下:
OPENFILENAME ofn; TCHAR szFileName[MAX_PATH] = _T(""); ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hWnd; //父窗口句柄 ofn.lpstrFilter = _T("Text Files (*.xml)\0*.xml\0All Files (*.*)\0*.*\0"); //打开的文件类型,这里以xml和所有文件为例 ofn.lpstrFile = szFileName; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; ofn.lpstrDefExt = _T("xml"); //默认的打开的文件类型 ofn.lpstrInitialDir=_T(".\\"); //默认的打开的文件路径,这里以当前目录为例 if(GetOpenFileName(&ofn)) { //szFileName为获取的文件名 // do something }
2,MFC环境的类的风格(或者说是C#或者VB中的控件风格),代码如下:
CString StrFile; CString defExe("txt"); CString defFileName("*.txt"); CString defFilter("文本文档(*.txt)|*.txt|所有文件(*.*)|*.*|"); CFileDialog dlg(true,defExe,defFileName,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,defFilter); dlg.m_ofn.lpstrInitialDir= _T(".\\"); if(dlg.DoModal()==IDOK) { StrFile = dlg.GetPathName(); // do something }
C#风格如下:
OpenFileDialog openFileDialog=new OpenFileDialog(); openFileDialog.InitialDirectory="c:\\";//注意这里写路径时要用c:\\而不是c:\ openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*"; openFileDialog.RestoreDirectory=true; openFileDialog.FilterIndex=1; if (openFileDialog.ShowDialog()==DialogResult.OK) { string fName=openFileDialog.FileName; //do something }
可以看出,这三个风格其实很想象,最主要的就是那么几个属性,Filter表示可以打开的文件的类型,InitialDir表示默认打开的路径,defext表示默认打开的文件类型
相关文章推荐
- 关于OpenFileDialog的使用
- 关于OpenFileDialog的使用(转)
- 关于OpenFileDialog的使用
- 关于OpenFileDialog的使用
- 关于OpenFileDialog的使用 2(转)
- 关于OpenFileDialog的使用
- 关于OpenFileDialog的使用
- 关于OpenFileDialog的使用
- C# 关于使用OpenFileDialog 默认路径被重置的问题。
- Winform关于OpenFileDialog的使用方法
- 关于OpenFileDialog的使用
- C #关于OpenFileDialog的使用
- OpenFileDialog 在Win32、MFC、C#的实现
- OpenFileDialog使用方法
- C#开发:openfiledialog的使用
- 使用 OPENFILENAME 以及 GetOpenFileName、GetSaveFileName 实现打开,保存对话框
- InternetOpen/InternetOpenUrl/InternetReadFile 等相关Win32 网络API 使用详细说明
- vba使用win32 API(GetOpenFileName )实现打开文件对话框
- 关于MFC项目中使用CDHtmlDialog禁止脚本错误的方法
- InternetOpen\InternetOpenUrl\InternetReadFile 等相关Win32 网络API 使用详细说明