MFC/浏览文件或文件夹

来源:互联网 发布:淘宝上传视频怎么传 编辑:程序博客网 时间:2024/05/28 17:06

浏览文件:

CFileDialog dlg(TRUE, _T("mc"), _T(""), OFN_OVERWRITEPROMPT, _T("Ini File(*.ini)|*.ini|"));

if(dlg.DoModal() == IDOK)
{
CString sFilePath = dlg.GetPathName();
GetDlgItem(IDC_EDIT_FILEPATH)->SetWindowText(sFilePath);
UpdateData(FALSE);
}

CFileDialog 类的构造函数:

CFileDialog(BOOL bOpenFileDialog,                     // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,            // 缺省的扩展名
LPCTSTR lpszFileName = NULL,          // 缺省显示在文件名组合框的编辑框的文件名,一般可选NULL
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL);             //pParentWnd:父窗口指针,一般可选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 (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明


打开文件夹:

MFC中没有专门打开文件夹的类

BROWSEINFO bi; 
ZeroMemory(&bi,sizeof(BROWSEINFO)); 
bi.hwndOwner = NULL; 
bi.pszDisplayName = szBuffer; 
bi.lpszTitle = _T("从下面选文件夹目录:"); 
bi.ulFlags = BIF_RETURNFSANCESTORS; 
LPITEMIDLIST idl = SHBrowseForFolder(&bi); 
if (NULL == idl) 

return; 

SHGetPathFromIDList(idl,szBuffer);


//显示在IDC_EDIT_PATH中
GetDlgItem(IDC_EDIT_PATH) -> SetWindowText(szBuffer);


0 0
原创粉丝点击