选择文件和文件夹的对话框

 在MFC编程中经常会需要用到选择文件夹和选择文件的界面,有两种方法,一种是只选择文件夹用到的是一个结构体。另一个用到的是选择对应的文件的对话框。

选择目录对话框
 BROWSEINFO bi;                       //BROWSEINFO结构体  
 TCHAR Buffer[512]=_T("");  
 TCHAR FullPath[512]=_T("");  
 bi.hwndOwner = m_hWnd;               //m_hWnd你的程序主窗口,浏览对话框的父窗口   
 bi.pidlRoot = NULL;                           //根目录的结构地址,为空显示桌面
 bi.pszDisplayName = Buffer;         //返回选择的目录名的缓冲区  
 bi.lpszTitle = _T("请选择文件夹");  //弹出的窗口的文字提示  
 bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_BROWSEFORCOMPUTER ; //只返回目录。其他标志看MSDN  
 bi.lpfn = NULL;                     //回调函数,有时很有用  
 bi.lParam = 0;  
 bi.iImage = 0;  
 ITEMIDLIST* pidl = ::SHBrowseForFolder (&bi); //显示弹出窗口,ITEMIDLIST很重要

选择文件对话框

CString CDcPackerDlg::BootOpenDialog()    // 返回选择的文件名称
{
    CString strFile 
= _T("");

    CFileDialog    dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T(
"Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||"), NULL);

    
if (dlgFile.DoModal())
    
{
        strFile 
= dlgFile.GetPathName();
    }


    
return strFile;
}


// 加载文件按钮
void  CDcPackerDlg::OnBnClickedSelectdec()
{
    
// TODO: Add your control notification handler code here
    m_strDescPath = "";        //类的成员变量

    
//"打开文件"对话框,选择文件,返回其路径
    m_strDescPath = BootOpenDialog();

    
}

你可能感兴趣的:(选择文件和文件夹的对话框)