MFC CFileDialog使用整理

1、CFileDialog构造函数

CFileDialog:CFileDialog(BOOL    
bOpenFileDialog, 
LPCTSTR    
lpszDefExt=NULL, 
LPCTSTR    
lpszFileName=NULL, 
DWORD    
dwFlags     =    
OFN_HIDEREADONLY     |    
OFN_OVERWRITEPROMPT, 
LPCTSTR    
lpszFilter=NULL, 
CWnd     *    
pParentWnd=NULL);

bOpenFileDialog:TRUE为打开文件对话框;FALSE为保存文件对话框

lpszDefExt:缺省的扩展名

lpszFileName:缺省显示在文件名组合框的编辑框的文件名,一般可选NULL

dwFlags:对话框风格,一般为OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
即隐藏只读选项和覆盖已有文件前提示。

类型:

OFN_HIDEREADONLY:隐藏只读选项

OFN_OVERWRITEPROMPT:覆盖已有文件前提

OFN_ALLOWMULTISELECT:允许选择多个文件

OFN_CREATEPROMPT:如果输入的文件名不存在,则对话框返回询问用户是否根据次文件名创建文件的消息框

OFN_FILEMUSTEXIST:只能输入已存在的文件名

OFN_FORCESHOWHIDDEN:可以显示隐藏的文件

OFN_NOREADONLYRETURN:不返回只读文件

OFN_OVERWRITEPROMPT:保存的文件已存在时,显示文件已存在的信息

lpszFilter:文件筛选类型,它指明可供选择的文件类型和相应的扩展名。参数格式如: 
"Chart Files
(*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;
*.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 |
分隔,末尾用 || 指明。

pParentWnd:父窗口指针,一般可选NULL.

2、对话框选项常用属性(实例:dialog)

dialog.m_ofn.lpstrTitle:显示窗口标题。

dialog.m_ofn.lpstrInitialDir:初始化展开路径。

dlg.m_ofn.lpstrFile:默认文件

dlg.m_ofn.lpstrFilter:文件筛选类型,注意与lpszFilter区别,要用"\0",不能用"|"

如:dlg.m_ofn.lpstrFilter="所有文件\0*.*\0图像文件\0*.jpg;*.bmp;*.gif\0\0";

3、对话框常用方法

INT_PTR CFileDialog::DoModal() 显示文件操作对话框,常用返回值:IDOK,点击了打开确定操作 IDCANCEL,取消

CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名
如:D:\文件.txt。注,多文件选择时返回目录名

CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:文件.txt

CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt

CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:文件

POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。

CString CFileDialog::GetNextPathName( POSITION& pos )
对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition(
)来得到最初的POSITION变量。

4、示例——多文件打开操作,获取文件名以“;”分开

//本代码测试环境VS2008 c++ MFC 
CFileDialog dlg(TRUE, NULL, NULL,
OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, 
    NULL,
this); 
  
    dlg.m_ofn.lpstrInitialDir =
(BSTR)directoryName; 
//设置对话框默认呈现的路径 
      
   
CString strFilePath; 
    if(dlg.DoModal() ==
IDOK) 
   

         CArray<CString,
CString>
aryFilename; 
         POSITION
posFile=dlg.GetStartPosition(); 
        
while(posFile!=NULL) 
        

   
aryFilename.Add(dlg.GetNextPathName(posFile)); 
        

         for(int
i=0;i<aryFilename.GetSize();i++) 
       

   
if(strFilePath.GetLength()>0) 
           

       
strFilePath.AppendChar(‘;‘);//多个文件‘;’分开 
   

    strFilePath+=
aryFilename.GetAt(i); 
       

    }

MFC CFileDialog使用整理,码迷,mamicode.com

时间: 2024-10-09 21:04:36

MFC CFileDialog使用整理的相关文章

Win32 实现 MFC CFileDialog 对话框

void CWriteWnd::OpenFileDialog(){    OPENFILENAME ofn;          TCHAR szFile[MAX_PATH] = _T(""); ZeroMemory(&ofn, sizeof(ofn));      ofn.lStructSize = sizeof(ofn);    ofn.hwndOwner   = *this;    ofn.lpstrFile   = szFile;       ofn.nMaxFile  

MFC相关知识整理

按:在该文档中整理我在做MFC相关编程时遇到的问题以及当时解决时所参考的资料.标准C/C++相关的问题不会放在这个帖子中,请移步:http://blog.csdn.net/edychang/article/details/37561701 1._T/_L宏:http://blog.csdn.net/panjean/article/details/6011090 2.CListCtrl: http://blog.csdn.net/bingxuewujian/article/details/7050

MFC CFileDialog派生类在编译过程出现“error 没有与参数列表匹配的构造函数......”的问题

CFileDialog派生类在编译过程出现"error 没有与参数列表匹配的构造函数实例参数类型为(int,const char[4],const char[6],int,const char[36],int)  .的问题 解决办法 右击项目---属性----配置属性-----常规-----字符集  选择"使用多字节字符集"即可~~~~撒花~~

VS MFC CFileDialog类 打开文件对话框和另存为对话框

1 explicit CFileDialog( 2 BOOL bOpenFileDialog, 指定的参数创建哪种类型的对话框. 设置到构造 文件已打开 对话框的 TRUE. 设置到构造 保存文件 对话框的 FALSE. 3 LPCTSTR lpszDefExt = NULL, 默认的文件扩展名. 如果用户在文件名框中不包括包含在用户的计算机上的关联) 的已知扩展 (一,lpszDefExt 指定的扩展自动追加到文件名. 如果此参数是 NULL,扩展不是追加. 4 LPCTSTR lpszFil

mfc CFileDialog类

知识点: CFileDialog类 SetBitmap LoadImage 动态显示图片 一.CFileDialog类 构造函数 CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pPare

MFC CFileDialog用法例子。

?Set it to?TRUE?to construct a?File Open?dialog box. Set it to?FALSE?to construct a?File Save As?dialog box. void CCompFileDlg::OnDirbrowser() { ????// TODO: Add your control notification handler code here ????CFileDialog fileDialog(TRUE); ????if (fi

MFC中的几个常用类——CFileDialog

1 简介 CFileDialog类封装了Windows常用的文件对话框.常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能. 可以用 构造函数提供的方式使用CFileDialog,也可以从CFileDialog派生出自己的对话类并编写一个构造函数来适应你的需要.每种情况下,对话框都与标准MFC对话框一样工作.因为它们都是 CCommonDialog类的 派生类. 要使用CFileDialog,先用CFileDialog 构造函数构造一个对象,当创建了一个对话

(转)MFC的一些宏的整理 (DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE)

很早看了MFC的一些宏的实现,什么RUNTIME_CLASS, DECLARE_DYNAMIC, DECLARE_DYNCREATE,IMPLEMENT_DYNCREATE, etc,看了就烦,现在整理下,免的忘了. 代码实现 (注:以下宏及其实现取自MFC) DECLARE_DYNAMIC Define:#define DECLARE_DYNAMIC(class_name) "public: "    static const AFX_DATA CRuntimeClass class

MFC中文件对话框类CFileDialog详解及文件过滤器说明

当前位置?:?首页???文章分类?:? 开发 ??? MFC中文件对话框类CFileDialog详解及文件过滤器说明 上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角 下一篇 Word中为图表生成目录 域名迁移公告 2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问! 阅读 大专栏  MFC中文件对话框类CFileDialog详解及文件过滤器说明busuanzi_value_page_pv"> 评