郴州交易中心:vb的CommonDialog控件

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 06:30:48
我只想让里面显示的文件内容,显示到文件夹级别的,再下一层的,比如.doc等类似的就不显示了,应该怎样实现呢?单纯的就用此控件的相关属性进行控制能实现不?
请各位仔细的看清楚我的意思,我想实现的是只显示到文件夹这层,再下面层的文件不显示,一楼的恐怕误解了我的意思了,呵呵

不就是调用选择文件夹吗,用这个函数

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

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

Public 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
Public Type SHITEMID
cb As Long
abID As Byte
End Type
Public Type ITEMIDLIST
mkid As SHITEMID
End Type

Function getFolder(frm As Form, Optional Flags As Long = 1) As String
On Error Resume Next
Dim BI As BROWSEINFO
Dim IDL As ITEMIDLIST
Dim r As Long
Dim pidl As Long
Dim tmpPath As String
Dim pos As Integer

BI.hOwner = frm.hwnd
BI.pidlRoot = 0&
BI.lpszTitle = "请选择路径:"
'bi.ulFlags = BIF_RETURNONLYFSDIRS
'BIF_DEFAULT = 0x0000,
'BIF_BROWSEFORCOMPUTER = 0x1000,效果不明
'BIF_BROWSEFORPRINTER = 0x2000,效果不明
'BIF_BROWSEINCLUDEFILES = 0x4000,效果不明
'BIF_BROWSEINCLUDEURLS = 0x0080,效果不明
'BIF_DONTGOBELOWDOMAIN = 0x0002,;效果不明
'BIF_EDITBOX = 0x0010,带文件夹名称编辑框
'BIF_NEWDIALOGstyle = 0x0040,带新建文件夹
'BIF_NONEWFOLDERBUTTON = 0x0200,没有菜单
'BIF_RETURNFSANCESTORS = 0x0008,效果不明
'BIF_RETURNONLYFSDIRS = 0x0001,;默认
'BIF_SHAREABLE = 0x8000,效果不明
'BIF_STATUSTEXT = 0x0004,;效果不明
'BIF_UAHINT = 0x0100,效果不明
'BIF_VALIDATE = 0x0020,效果不明
'BIF_NOTRANSLATETARGETS = 0x0400,效果不明

BI.ulFlags = Flags
'get the folder
pidl = SHBrowseForFolder(BI)

tmpPath = Space$(512)
r = SHGetPathFromIDList(ByVal pidl, ByVal tmpPath)
getFolder = ""

If r Then
pos = InStr(tmpPath, Chr$(0))
tmpPath = Trim(Left(tmpPath, pos - 1))
If Right(tmpPath, 1) <> "\" Then tmpPath = tmpPath & "\"
getFolder = Trim(tmpPath)
End If
End Function

不会吧。把filter属性改成*.doc 试试看。