CFileDialog简介

CFileDialog简介CFileDialog 简介 CFileDialog 类封装了 Windows 常用的文件对话框 常用的文件对话框提供了一种简单的与 Windows 标准相一致的文件打开和文件存盘对话框功能 类方法创建文件对话框可以使用 DoModal 在返回后可以利用下面的函数得到用户选择 CStringCFile GetPathName 得到完整的文件名 包括目录名和扩展名如 c

CFileDialog简介

CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。

类方法

创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:
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::CFileDialog介绍

1.函数原型

创建文件选择对话框

explicit CFileDialog(
   BOOL bOpenFileDialog, 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
   LPCTSTR lpszDefExt = NULL, 指定默认的文件扩展名。 
   LPCTSTR lpszFileName = NULL,指定默认的文件名。
   DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,指明一些特定风格
   LPCTSTR lpszFilter = NULL, 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。
   CWnd* pParentWnd = NULL,为父窗口指针。
);






CFileDialog GetFile(打开文件对话框(TRUE),扩展名(NULL),文件名(NULL),风格-文件必须存在(OFN_FILEMUSTEXIST),查看文件类型-EXCEL文件,所有文件(Microsoft Excel(*.xls)|*.xls|All Files(*.*)|*.*||,父窗口(NULL));

常用风格介绍

风格的宏定义

3.实例

//

//创建一个.txt文件

CString lstrFileName;//保存文件路径

CFileDialog FileDialog(TRUE,L”.txt”,L””,OFN_OVERWRITEPROMPT,_T(“Text Files(*.txt)|*.txt|All Files (*.*)|*.*||”),NULL);

if(FileDialog.DoModal() != IDOK)
return;
lstrFileName = FileDialog.GetPathName();//得到文件路径
//创建文件
lbRet = lStdFile.Open(lstrFileName,CFile::modeCreate|CFile::modeReadWrite,NULL);
if (lbRet == FALSE)
{

MessageBox(L”failed to createfile!”);
return ;
}










//

// 打开文件
CFileDialog fileDialog = CFileDialog(FALSE, NULL, NULL, OFN_READONLY, L”GIF Files (*.gif)|*.gif|All Files (*.*)|*.*||”,this);
 if (fileDialog.DoModal() == IDOK)
 {

  CString strPath = fileDialog.GetPathName();
 }




//
// 打开文件夹
WCHAR szDir[MAX_PATH]; 
 BROWSEINFO bi; 
 ITEMIDLIST *pidl;

 bi.hwndOwner = this->m_hWnd; 
 bi.pidlRoot = NULL; 
 bi.pszDisplayName = szDir; 
 bi.lpszTitle = L”请选择目录”; 
 bi.ulFlags = BIF_RETURNONLYFSDIRS; 
 bi.lpfn = NULL;
 bi.lParam = 0;
 bi.iImage = 0;

 pidl = SHBrowseForFolder(&bi); 
 if(pidl == NULL) 
  return;

 if(SHGetPathFromIDList(pidl, szDir))
 {

  CString m_strSavePath.Format(L”%s”, szDir);
}























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222474.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:43
下一篇 2026年3月17日 下午3:43


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号