[MFC]选择目录对话框和选择文件对话框

Posted www

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[MFC]选择目录对话框和选择文件对话框相关的知识,希望对你有一定的参考价值。

在MFC编程中经常会需要用到选择目录和选择文件的界面,以下总结一下本人常用的这两种对话框的生成方法:

选择目录对话框

技术分享图片//选择目录按钮
技术分享图片void CDcPackerDlg::OnBnClickedDecgen()    
技术分享图片{
技术分享图片    char szPath[MAX_PATH];     //存放选择的目录路径 
技术分享图片    CString str;
技术分享图片
技术分享图片    ZeroMemory(szPath, sizeof(szPath));   
技术分享图片
技术分享图片    BROWSEINFO bi;   
技术分享图片    bi.hwndOwner = m_hWnd;   
技术分享图片    bi.pidlRoot = NULL;   
技术分享图片    bi.pszDisplayName = szPath;   
技术分享图片    bi.lpszTitle = "请选择需要打包的目录:";   
技术分享图片    bi.ulFlags = 0;   
技术分享图片    bi.lpfn = NULL;   
技术分享图片    bi.lParam = 0;   
技术分享图片    bi.iImage = 0;   
技术分享图片    //弹出选择目录对话框
技术分享图片    LPITEMIDLIST lp = SHBrowseForFolder(&bi);   
技术分享图片
技术分享图片    if(lp && SHGetPathFromIDList(lp, szPath))   
技术分享图片    {
技术分享图片        str.Format("选择的目录为 %s",  szPath);
技术分享图片        AfxMessageBox(str); 
技术分享图片
技术分享图片        技术分享图片
技术分享图片    }
技术分享图片    else   
技术分享图片        AfxMessageBox("无效的目录,请重新选择");   
技术分享图片}



选择文件对话框

技术分享图片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();
技术分享图片
技术分享图片    技术分享图片
技术分享图片}



























































以上是关于[MFC]选择目录对话框和选择文件对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框”

创建 MFC 对话框让用户选择文件路径

MFC点击按钮打开对话框选择文件夹(不是文件)

MFC——文件选择对话框

MFC——文件选择对话框

MFC点击按钮打开对话框选择文件夹(不是文件)