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

选择目录对话框

{
    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 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();

    
}

最新文章

  1. 【PHP面向对象(OOP)编程入门教程】9.封装性(var与public,protected,private的关系)
  2. 后台子线程(非主线程)更新UI引起的警告
  3. 关于设置android:imeOptions属性无效的解决办法
  4. iOS 使用fir、 蒲公英 进行内部测试
  5. [Cache] C#操作缓存--CacheHelper缓存帮助类 (转载)
  6. 在Github上搭建你的博客
  7. INS-30002 口令和确认口令不同
  8. leetcode 639 Decode Ways II
  9. go语言的排序和去重
  10. [BUAA2017软工]第1次个人项目 数独
  11. JavaScript中的setInterval用法
  12. C++高性能转换大小写算法
  13. UVa 1572 Self-Assembly (构造+拓扑排序。。。。。)
  14. scalac:cannot connnect to compile server(idea 编译scala)
  15. python函数之调用函数
  16. BigDecimal常用方法
  17. rails下mysql出错问题mysql_api,blog/text
  18. Yarn中几个专用名称
  19. poj2373 Dividing the Path
  20. 方法引用(Method reference)和invokedynamic指令详细分析

热门文章

  1. JAVA-基础(一)
  2. C++智能指针实现
  3. Jmeter测试https协议
  4. [已解决] wordpress 修改 permalink 后 页面 404 问题
  5. CF750E 线段树+矩阵乘矩阵加
  6. Maven之scope详解
  7. 《机器学习实战》笔记——AdaBoost
  8. [笔记]BFS算法的python实现
  9. IO Streams:扫描
  10. 二进制<3>