原函数如下
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 指定默认的文件名。
dwFlags 指明一些特定风格。 (默认OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT)风格宏较多。
lpszFilter 指明可供选择的文件类型和相应的扩展名。
pParentWnd 为父窗口指针。
··················································
相关方法如下:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。
相对需要注意的是进程中的路径问题:
对于路径需要注意的是,用了CFileDialog之后,会把程序的当前路径设置成选中文件的路径 所以,如果程序里有用到IO访问或者数据库访问之类的本地操作时,需要注意你的当前路径 用相对路径的话就不是原来你的程序路径了,切记!