CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

怎样能够产生浏览文件夹这个对话框

楼主pengliu1998(小黑)2003-09-04 13:39:56 在 VC/MFC / 界面 提问

我想通过一个按钮打开这个系统的(浏览文件夹)对话框。  
  哪位高手指教一下。  
  问题点数:50、回复次数:4Top

1 楼bcpl(林平之)回复于 2003-09-04 13:52:12 得分 50

 
  LPITEMIDLIST   PidlBrowse(HWND   hwnd,   int   nCSIDL,   LPCTSTR   lpszTitle   =   "选择目录")  
  {  
          LPITEMIDLIST   pidlRoot   =   NULL;  
          LPITEMIDLIST   pidlSelected   =   NULL;  
          BROWSEINFO   bi   =   {0};  
          LPMALLOC   pMalloc   =   NULL;  
   
          SHGetMalloc(&pMalloc);  
   
          if(nCSIDL)  
          {  
                  SHGetFolderLocation(hwnd,   nCSIDL,   NULL,   NULL,   &pidlRoot);  
          }  
          else  
          {  
                  pidlRoot   =   NULL;  
          }  
   
          bi.hwndOwner   =   hwnd;  
          bi.pidlRoot   =   pidlRoot;  
          bi.pszDisplayName   =   NULL;  
          bi.lpszTitle   =   lpszTitle;  
          bi.ulFlags   =   BIF_NEWDIALOGSTYLE|BIF_EDITBOX|BIF_RETURNONLYFSDIRS   ;  
          bi.lpfn   =   NULL;  
          bi.lParam   =   0;  
   
          pidlSelected   =   SHBrowseForFolder(&bi);  
   
          if(pidlRoot)  
          {  
                  pMalloc->Free(pidlRoot);  
          }  
          pMalloc->Release();  
          return   pidlSelected;  
  }  
   
   
  void   CShell1Dlg::OnButton1()    
  {  
  IMalloc   *pMalloc;  
  SHGetMalloc(&pMalloc);  
  CString   ts;  
  ITEMIDLIST   *pidl   =   PidlBrowse(m_hWnd,   CSIDL_DESKTOP);  
  SHGetPathFromIDList(pidl,   ts.GetBuffer(MAX_PATH));  
  ts.ReleaseBuffer();  
  AfxMessageBox(ts);  
  pMalloc->Free(pidl);  
  pMalloc->Release();  
  }  
  Top

2 楼pengliu1998(小黑)回复于 2003-09-04 13:59:28 得分 0

请问一下这个函数PidlBrowse是不是自己封装的Top

3 楼bcpl(林平之)回复于 2003-09-04 14:07:43 得分 0

是Top

4 楼niufen(牛粪)回复于 2003-09-04 14:32:17 得分 0

LPITEMIDLIST   pidlSelected   =   NULL;  
  BROWSEINFO   bi   =   {0};  
          bi.hwndOwner   =   GetDlgItem(IDC_BUTTON_BROWSE)->GetSafeHwnd();  
  bi.lpszTitle   =   "选择路径";  
  char   kkk[256];  
  // strcpy(kkk,"123456");  
          bi.pszDisplayName   =   kkk;  
          bi.ulFlags   =   BIF_RETURNONLYFSDIRS;  
         
          pidlSelected   =   SHBrowseForFolder(&bi);  
   
          if(pidlSelected)  
          {  
  char   buf[_MAX_PATH];  
  SHGetPathFromIDList(pidlSelected,buf);  
   
  if(m_Edit==buf)    
  {  
  nFlag=1;  
  }  
  else    
  {  
  nFlag=0;  
  }  
  m_Edit=buf;  
  LPMALLOC   lpm;  
  if   (SHGetMalloc(&lpm)   ==   NOERROR)  
  lpm->Free(pidlSelected);  
  lpm->Release();  
           
  }Top

相关问题

  • “浏览文件夹”对话框是怎么调用的?
  • 浏览文件夹对话框如何复初值
  • 如何用"文件夹浏览"对话框
  • 如何调用浏览文件夹对话框
  • 如何实现 浏览文件夹对话框??
  • 文件夹对话框?
  • 文件夹的对话框
  • 怎样能够弹出“浏览文件夹”的对话框,用来选择文件夹?
  • 怎么调用windows的"浏览文件夹"对话框,我想选择我要的文件夹!急!
  • 如何设置以代码方式生成的文件夹浏览对话框的初始文件夹?

关键词

  • bi
  • null
  • pidlroot
  • pmalloc
  • pidlselected
  • ncsidl
  • lpsztitle
  • lpitemidlist
  • bif
  • pidl

得分解答快速导航

  • 帖主:pengliu1998
  • bcpl

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo