• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB中用API函數實現文件夾列表

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 47次 | 進入軟件測試論壇討論

    領測軟件測試網 山東濟寧市食品進出口公司 唐成斌

    ---- 在安裝軟件等一些操作中,需要用戶指定安裝路徑,現在軟件的安裝界面都是非常友好的,一般來說給出一個缺省路徑,用戶如不滿意可以在文件夾列表中選擇其他的路徑。 在WIN9X下,一般不再采用原來的先在驅動器列表框中選擇驅動器再在相應的驅動器中選擇相應文件夾的界面,而是采用的類似資源管理器中“所有文件夾”界面:最上層是“桌面”,然后是“我的電腦”、驅動器A、C、D...等,在一個列表框中用戶可實現瀏覽所有驅動器及文件夾的操作。這種特色的文件列表沒有現成的控件可供使用,但利用API函數可方便地實現。

    ---- 實現方法:API函數SHBrowseForFolder可以提供這樣的文件列表,它需要用到一個BROWSEINFO類型,此類型包括了列表框使用的參數,此類型的聲明見下面的程序,其中這里用到的幾個參數簡單說明一下:

    ---- hwndOwner—當前窗口的句柄。

    ---- pidlRoot—從何根路徑開始展開文件夾,缺省情況下從“桌面”開始展開。

    ---- lpszTitle—目錄樹上方的標題,用來給用戶一些提示信息。

    ---- ulFlags—顯示標志控制項:比如若賦值為BIF_BROWSEFORCOMPUTER,則只有當用戶選擇“我的電腦”時“確定”按鈕才有效,這里我們需要的是

    ---- BIF_RETURNONLYFSDIRS,只有用戶選擇的是文件夾時“確定”按鈕才有效。

    ---- 此函數返回值是指向項目(ITEM)的一個指針,有了這個數值,再用API函數SHGetPathFromIDList可以獲得具體的路徑,如果用戶按的是“取消”按鈕,則返回值為NULL。

    ---- 下面是一個例子,在窗體中放置一個命令按鈕command1、一個文本框Text1,在窗體的聲明部分API聲明函數和類型及常量如下:

    Option Explicit

    Private Type BROWSEINFO
       hOwner           As Long
       pidlRoot         As Long
       pszDisplayName   As String
       lpszTitle        As String
       ulFlags          As Long
       lpfn             As Long
       lParam           As Long
       iImage           As Long
    End Type

    Const BIF_RETURNONLYFSDIRS = &H1

    Private pidl As Long

    Private Declare Function
    SHGetPathFromIDList _
       Lib "shell32.dll" Alias
       "SHGetPathFromIDListA" _
      (ByVal pidl As Long, ByVal
       pszPath As String) As Long

    Private Declare Function
    SHBrowseForFolder Lib "shell32.dll" _
       Alias "SHBrowseForFolderA" _
      (lpBrowseInfo As BROWSEINFO) As Long

    ---- 雙擊命令按鈕,寫如下代碼:

      Private Sub command1_Click()
      Dim bi As BROWSEINFO
      Dim r As Long
      Dim pidl As Long
      Dim path As String
      Dim pos As Integer
      注釋:句柄
      bi.hOwner = Me.hWnd
      注釋:展開根目錄
      bi.pidlRoot = 0&
    注釋:列表框標題
      bi.lpszTitle = "請選擇軟件安裝路徑:"
    注釋:規定只能選擇文件夾,其他無效
      bi.ulFlags = BIF_RETURNONLYFSDIRS
    注釋:調用API函數顯示列表框
      pidl = SHBrowseForFolder(bi)
    注釋:利用API函數獲取返回的路徑
      path = Space$(512)
      r = SHGetPathFromIDList(ByVal pidl&, ByVal path)
      If r Then
            pos = InStr(path, Chr$(0))
            Text1 = Left(path, pos - 1)
      Else: Text1 = ""
      End If
      End Sub

    ---- 運行此程序,單擊命令按鈕,就可以看到和資源管理器中一樣的“所有文件夾”列表了。

    ---- 此程序在中文WIN95/98、中文VB5.0專業版下調試通過,也適用于VB4.0。 

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>