本文转载于http://blog.163.com/zhaojun_xf/blog/static/30050580201132221118479/

在Wince下要打开目录对话框需要调用函数SHBrowseForFolder(),调用此函数一定要注意在工程中添加静态库ceshell.lib。否则会报错无法连接,具体的方法是选择工程的属性->“连接器”->“输入”->“附加依赖项”,输入ceshell.lib,即可。

添加静态库:

BOOL BrowseDirectory(TCHAR *title,TCHAR *fileDir)
{
 TCHAR dir[MAX_PATH];
 ZeroMemory(&dir,MAX_PATH);

 BROWSEINFO bi;
 bi.hwndOwner      = NULL;
 bi.pidlRoot       = NULL;
 bi.pszDisplayName = dir;
 bi.lpszTitle      = title;
 bi.ulFlags        = ;
 bi.lpfn           = NULL;
 bi.lParam         = NULL;
 bi.iImage         = NULL; 

 if (!SHGetPathFromIDList(SHBrowseForFolder(&bi),dir))
 {
  return (FALSE);
 }

 lstrcpy(fileDir,dir);

 return (TRUE);
}

在需要的地方调用此函数即可,title为在对话框上显示的标题,fileDir为读取的目录项。

运行结果:

下面转载内容出自:http://blog.csdn.net/scu_zhongxq/archive/2010/03/07/5354003.aspx

在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 = ;
    bi.lpfn = NULL;
    bi.lParam = ;
    bi.iImage = ;
    //弹出选择目录对话框
    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;
}

最新文章

  1. js弹出框,禁刷新
  2. 【python】用setup安装自定义模块和包
  3. Draggabilly – 轻松实现拖放功能(Drag & Drop)
  4. su su- sudo的区别
  5. Understand:高效代码静态分析神器详解(转)
  6. UVA 393
  7. 学习KnockOut第二篇之Counter
  8. Enable Access Logs in JBoss 7 and tomcat--转
  9. Web分析日志
  10. IE,火狐,谷歌浏览器下js判断滚动条是否已拉到页面最底部
  11. 【HDU 5532 Almost Sorted Array】水题,模拟
  12. [转]Numpy使用MKL库提升计算性能
  13. 吃奶酪 洛谷 p1433
  14. <c:forEach 的常用整理
  15. Python函数声明以及与其他编程语言数据类型的比较
  16. LeetCode算法题-Number Complement(Java实现-五种解法)
  17. wireshark基础学习—第一部分wireshark的基础知识
  18. Breathe me
  19. 《JavaScript 高级程序设计》第一章:简介
  20. luoguP1064 金明的预算方案 (有依赖的背包问题)

热门文章

  1. jquery mobile 和phonegap开发总结之三跨域加载页面
  2. jQuery通过判断 checkbox 元素的 checked 属性,判断 checkbox是否被选中
  3. js 排序Json数组
  4. 浅谈AJAX的基本原理和原生AJAX的基础用法
  5. jq 实现发送验证码倒计时功能
  6. tiny_cnn 阅读(1)
  7. JS重要知识点
  8. jquery异步加载json格式的数据
  9. ROS实际问题解决方法
  10. chrome浏览器遇到的异常