打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB中用API函数实现文件夹列表
关键字/核心提示:[标签:副标题]
在安装软件等一些操作中,需要用户指定安装路径,现在软件的安装界面都是非常友好的,一般来说给出一个缺省路径,用户如不满足可以在文件夹列表中选择其他的路径。在WIN9X下,一般不再采用原来的先在驱动器列表框中选择驱动器再在相应的驱动器中选择相应文件夹的界面,而是采用的类似资源治理器中“所有文件夹”界面:...
----在安装软件等一些操作中,需要用户指定安装路径,现在软件的安装界面都是非常友好的,一般来说给出一个缺省路径,用户如不满足可以在文件夹列表中选择其他的路径。在WIN9X下,一般不再采用原来的先在驱动器列表框中选择驱动器再在相应的驱动器中选择相应文件夹的界面,而是采用的类似资源治理器中“所有文件夹”界面:最上层是“桌面”,然后是“我的电脑”、驱动器A、C、D...等,在一个列表框中用户可实现浏览所有驱动器及文件夹的操作。这种特色的文件列表没有现成的控件可供使用,但利用API函数可方便地实现。
  
  ----实现方法:API函数SHBrowseForFolder可以提供这样的文件列表,它需要用到一个BROWSEINFO类型,此类型包括了列表框使用的参数,此类型的声明见下面的程序,其中这里用到的几个参数简单说明一下:
  
  ----hwndOwner—当前窗口的句柄。
  
  ----pidlRoot—从何根路径开始展开文件夹,缺省情况下从“桌面”开始展开。
  
  ----lpszTitle—目录树上方的标题,用来给用户一些提示信息。
  
  ----ulFlags—显示标志控制项:比如若赋值为BIF_BROWSEFORCOMPUTER,则只有当用户选择“我的电脑”时“确定”按钮才有效,这里我们需要的是
  
  ----BIF_RETURNONLYFSDIRS,只有用户选择的是文件夹时“确定”按钮才有效。
  
  ----此函数返回值是指向项目(ITEM)的一个指针,有了这个数值,再用API函数SHGetPathFromIDList可以获得具体的路径,假如用户按的是“取消”按钮,则返回值为NULL。
  
  ----下面是一个例子,在窗体中放置一个命令按钮command1、一个文本框Text1,在窗体的声明部分API声明函数和类型及常量如下:
  
  OptionExplicit
  
  PrivateTypeBROWSEINFO
  hOwnerAsLong
  pidlRootAsLong
  pszDisplayNameAsString
  lpszTitleAsString
  ulFlagsAsLong
  lpfnAsLong
  lParamAsLong
  iImageAsLong
  EndType
  
  ConstBIF_RETURNONLYFSDIRS=&H1
  
  PrivatepidlAsLong
  
  PrivateDeclareFunction
  SHGetPathFromIDList_
  Lib"shell32.dll"Alias
  "SHGetPathFromIDListA"_
  (ByValpidlAsLong,ByVal
  pszPathAsString)AsLong
  
  PrivateDeclareFunction
  SHBrowseForFolderLib"shell32.dll"_
  Alias"SHBrowseForFolderA"_
  (lpBrowseInfoAsBROWSEINFO)AsLong
  
  ----双击命令按钮,写如下代码:
  
  PrivateSubcommand1_Click()
  DimbiAsBROWSEINFO
  DimrAsLong
  DimpidlAsLong
  DimpathAsString
  DimposAsInteger
  '句柄
  bi.hOwner=Me.hWnd
  '展开根目录
  bi.pidlRoot=0&
  '列表框标题
  bi.lpszTitle="请选择软件安装路径:"
  '规定只能选择文件夹,其他无效
  bi.ulFlags=BIF_RETURNONLYFSDIRS
  '调用API函数显示列表框
  pidl=SHBrowseForFolder(bi)
  '利用API函数获取返回的路径
  path=Space$(512)
  r=SHGetPathFromIDList(ByValpidl&,ByValpath)
  IfrThen
  pos=InStr(path,Chr$(0))
  Text1=Left(path,pos-1)
  Else:Text1=""
  EndIf
  EndSub
  
  ----运行此程序,单击命令按钮,就可以看到和资源治理器中一样的“所有文件夹”列表了。
  
  ----此程序在中文WIN95/98、中文VB5.0专业版下调试通过,也适用于VB4.0。->
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用SHBrowseForFolder函数打开文件目录对话框
VC弹出选择“文件路径”和选择“文件夹路径”对话框
VC API获得文件夹路径的方法
VB6.0 浏览文件夹对话框 选择文件保存路径
vb中 打开文件夹浏览框的方法总结
MFC程序问题——如何通过点击按钮弹出文件目录浏览,选择目录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服