你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
在VB中获取目录名另一法
 


笔者偶尔用VB编程。我们知道,在VB中通过交互式对话框获取目录名的方法很多,如用DirList控件,或用CommonDialog控件。但笔者最欣赏的是在Windows系统中如安装驱动程序指明文件路径时出现如图所示的对话框。为了获得那样的目录对话框,在VB中试过许多方法,如对CommonDialog控件的常数等进不同取值,用Windows API函数等等都无法取得,百思不得其解。

一次偶然机会,笔者打开MicoOffice\Office\Micos\Convert8.wiz文件。运行文件中的宏,按下“浏览”按钮,就出现了上图中所示的对话框。于是,逐个查找按钮所对应的代码,并仔细分析后发现:之所以能够出现上图示的对话框,是因为用了Office提供的Convert8.dll中的SelectFolder函数。

于是根据Convert8.wiz的宏思路,利用自已拥有的VB知识,先把Convert8.dll拷贝到c:\windows\system目录下(注意:声明指明Convert8.dll的具体路径),编写获取目录对话框程序。程序的源代码如下:

 

Attribute VB_Name = "Module1")(注:该行代码在VB的模块中是不可见的)

Option Explicit

常数取值

Global Const ONE_K_BUFF = 1024

Global Const strSEL_FLD_BUTTON_TEXT = "Select"

SelectFolder函数声明,注意:1、文件路径根据各自位置而定;

                              2、函数的变量类型

Declare Function SelectFolder Lib "c:\windows\system\Convert8.dll" _

               (ByVal lpstrFileTitle As String, lpcbMaxFileTitle As Long, _

               ByRef lpdwRestoreFlag As Long, ByRef lpdwX0 As Long, _

               ByRef lpdwY0 As Long, ByVal lpstrSelectButtonText As String, _

               ByVal hParentWnd As Long) As Long

Function SelectedPath() As String

   获取出现目录对话框后的用户选取的目录全名

    Dim strPath As String * ONE_K_BUFF '定义目录名为定长字串

    Dim lPathSize As Long '目录名的长度

    Dim dwRestoreFlag As Long

    Dim dwX0 As Long

    Dim dwY0 As Long

    lPathSize = ONE_K_BUFF

      dwRestoreFlag = 0              

    dwX0 = -1

    dwY0 = -1

   '调用定义的Convert8.dll中的SelectFolder函数

    SelectFolder strPath, lPathSize, dwRestoreFlag, dwX0, dwY0, _

                                   strSEL_FLD_BUTTON_TEXT, 0

 '获取目录名

 SelectedPath = strPath

 '去掉目录名CHr(0)后的无用字符

 SelectedPath = Mid(SelectedPath, 1, InStr(1, SelectedPath, Chr(0)) - 1)

End Function

Convert8.dll文件只有22K多点,编写的代码也较精简,占用空间不多。有兴趣的读者不妨把它作为子过程调用,丰富VB程序的界面。当然因受本人知识面等限制,也许有出现上图对话框更高效、更精简、更方便的办法。

本程序在Windows95\98,VB5中文版下通过。

 

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089