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
