1、CFileDialog构造函数
1 cfiledialog:cfiledialog (boolbopenfiledialog,2 LPCTSTR lpszDefExt=NULL,3 LPCTSTR lpszFileName=NULL, 4 dword dwflags=ofn _ hidereadonly|ofn _ overwrite prompt,5 LPCTSTR lpszFilter=NULL,6 CWnd * pParentWnd=NULL;
bOpenFileDialog:TRUE用于打开文件对话框; FALSE是用于保存文件的对话框
lpszDefExt :默认扩展名
lpsz文件名:编辑框的文件名,默认情况下显示在文件名组合框中。 通常为空选项
dwFlags :隐藏对话框样式(通常为ofn _ hidereadonly|ofn _ overwrite prompt,只读选项),并在复盖现有文件之前提示。
类型:
隐藏OFN_HIDEREADONLY:只读选项
OFN_OVERWRITEPROMPT:涵盖现有的文件前提
OFN_ALLOWMULTISELECT:允许选择多个文件
如果您输入的OFN_CREATEPROMPT:文件名不存在,对话框将返回一个消息框,询问用户是否要从子文件名创建文件
OFN_FILEMUSTEXIST:只能输入现有文件名
OFN_FORCESHOWHIDDEN:可以显示隐藏的文件
ofn _ no只读返回:不返回只读文件
如果用OFN_OVERWRITEPROMPT:保存的文件已经存在,则会显示该文件已经存在的信息
lpsz过滤器:指示可用文件类型和相应扩展名的文件过滤器类型。 参数格式如下。
' chartfiles(*.xlc ) *.xlc (.xls ) *.xls ().xlc; *.xls(|*.xlc; *.xls|allfiles(*.*|*.*|| '; 文件类型说明和扩展名之间用|分隔,同一类型文件的扩展名之间可以使用; 分割,各文件类型之间用|分隔,末尾用||表示。
pParentWnd :父窗口指针,通常为可选NULL。
2、对话框选项的常规属性(实例: dialog ) ) ) ) ) ) ) ) ) ) )。
dialog.m_ofn.lpstrTitle :显示窗口标题。
dialog.m_ofn.lpstrInitialDir :初始化部署路径。
dlg.m_ofn.lpstrFile :默认文件
dlg.m_ofn.lpstrFilter:文件过滤器类型使用“ ”,而不要使用“|”,以区别于lpsz过滤器
例如,dlg.m_ofn.lpstrFilter='所有文件 *.* 图像文件 *.jpg; *.bmp; *.gif ';
3、对话框的一般方法
int _ ptr cfiledialog : domodal ()显示文件操作对话框,经常单击返回值: IDOK、openok操作IDCANCEL、取消
cstring cfiledialog :3360 get pathname ()获取包含目录名称和扩展名(例如c:(test ) test.txt )的完整文件名。 注意,选择多个文件时返回目录名称
cstring cfiledialog :3360 getfilename ()获取扩展名为test.txt的完整文件名
cstring cfiledialog :3360 get extname ()具有完整的文件扩展名,如txt
cstring cfiledialog :3360 getfile title ()获取完整的文件名,不包含目录名称和test等扩展名
当选择多个文件时,position cfiledialog :3360 get start position ()将获取第一个文件的位置。
如果选择多个文件,cstring cfiledialog :3360 get next pathname (position pos )将获取以下文件的位置,并同时返回当前文件名: 但是,要获取第一个POSITION变量,必须已经调用position cfiledialog 33603360 get start position ()。
4、例——打开多个文件的操作,获取文件名,选择“; ”告别
1cfiledialogdlg(true、NULL、NULL、ofn _ hidereadonly|ofn _ overwrite prompt|ofn _ allow multiselect、2 NULL、this )
4d LG.m _ ofn.lpstrinitialdir=(bstr )目录名称; //设置对话框默认情况下绘制的路径
5
6字符串字符串文件路径; 7if(DLG.domodal(==idok )8 {9 CArrayaryFilename; 10 position posfile=DLG.get start position (; 11 while (销售点文件!=null(12(13Aryfilename.add ) dlg.getnextpathname ) posfile ); 14 ) 15for(intI=0; i0 ) 18 {19 strFilePath.AppendChar (; )。 ); //多个文件“;” 告别
20 ) 21 strfile path=ary filename.getat (I; 22 ) 23}