MFC文件对话框的使用
一、使用文件对话框获取文件路径
CEdit m_ctlEdit;
//打开文件获取文件路径及文件名
void CFileDlgDemoDlg::OnFile()
{
// TODO: Add your control notification handler code here
CString szFilters="MyType Files (*.my)|*.my|All Files (*.*)|*.*||"; //定义文件过滤器
//创建打开文件对话框对象,默认的文件扩展名为 ".my".
CFileDialog fileDlg (TRUE, "my", "*.my",OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
//调用DoModal()函数显示打开文件对话框
if( fileDlg.DoModal ()==IDOK )
{
CString pathName = fileDlg.GetPathName();
// 进行文件的相关操作
m_ctlEdit.SetWindowText(pathName);
//将当前窗口的标题设置为打开文件的名字
CString fileName = fileDlg.GetFileTitle ();
SetWindowText(fileName);
}
}
二、多选文件对话框:选择多个文件,并显示在列表中
CListBox m_ctlList;
//打开多个文件并显示到列表框中
void CMultiFileDlgDemoDlg::OnFileopen()
{
// TODO: Add your control notification handler code here
CString szFilters="DOC Files (*.doc)|*.doc|All Files (*.*)|*.*||"; //定义文件过滤器
//创建打开文件对话框对象,默认的文件扩展名为 ".doc".
CFileDialog fileDlg (TRUE, "doc", "*.doc",OFN_FILEMUSTEXIST| OFN_ALLOWMULTISELECT, szFilters, this);
//调用DoModal()函数显示打开文件对话框
if( fileDlg.DoModal ()==IDOK )
{
m_ctlList.ResetContent();//清空列表框
POSITION pos;
pos=fileDlg.GetStartPosition();//开始遍历用户选择文件列表
while (pos!=NULL)
{
CString filename=fileDlg.GetNextPathName(pos);
m_ctlList.AddString(filename);//将文件名添加到列表框
}
}
}