设置属性!
Public Const OFN_HIDEREADONLY = &H4

解决方案 »

  1.   

    Option Explicit
    '对话框
    Public Declare Function GetOpenFileName _
            Lib "comdlg32.dll" Alias "GetOpenFileNameA" _
            (pOpenfilename As OPENFILENAME) As Long
    Public Declare Function GetSaveFileName _
            Lib "comdlg32.dll" Alias "GetSaveFileNameA" _
            (pOpenfilename As OPENFILENAME) As Long
    Public Declare Function SHBrowseForFolder _
            Lib "shell32.dll" Alias "SHBrowseForFolderA" _
            (lpBrowseInfo As BROWSEINFO) As Long
    Public Declare Function SHGetPathFromIDList _
            Lib "shell32.dll" _
            (ByVal pidl As Long, _
            pszPath As String) As Long
    Public Declare Function CHOOSECOLOR _
            Lib "comdlg32.dll" Alias "ChooseColorA" _
            (pChoosecolor As CHOOSECOLOR) As LongPublic Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End TypePublic Type BROWSEINFO
        hOwner As Long
        pidlRoot As Long
        pszDisplayName As String
        lpszTitle As String
        ulFlage As Long
        lpfn As Long
        lparam As Long
        iImage As Long
    End TypePrivate Type CHOOSECOLOR
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        rgbResult As Long
        lpCustColors As String
        flags As Long
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End TypePublic Const OFN_HIDEREADONLY = &H4 '隐藏只读打开
    Public Const OFN_READONLY = &H1 '只读打开为选中
    Public Const OFN_OVERWRITEPROMPT = &H2 '覆盖时提示
    Public Const OFN_ALLOWMULTISELECT = &H200 '多个选中
    Public Const OFN_EXPLORER = &H80000 '资源管理器Public Function ShowOpen(MehWnd As Long, _
            FileOpen As String, _
            Optional Title As String = "打开:", _
            Optional Filter As String = vbNullChar + vbNullChar, _
            Optional FilterIndex As Long = 0, _
            Optional StartDir As String = vbNullChar, _
            Optional flags As Long = OFN_HIDEREADONLY) As Long
        Dim OpenFN As OPENFILENAME
        Dim Rc As Long
        
        With OpenFN
            .hwndOwner = MehWnd
            .hInstance = App.hInstance
            .lpstrTitle = Title
            .lpstrFilter = Filter
            .nFilterIndex = FilterIndex
            .lpstrInitialDir = StartDir
            .lpstrFile = String$(256, 0)
            .nMaxFile = 255
            .lpstrFileTitle = .lpstrFile
            .nMaxFileTitle = 255
            .flags = flags
            .lStructSize = Len(OpenFN)
            
        End With
        
        Rc = GetOpenFileName(OpenFN)
        
        If Rc Then
            FileOpen = Left$(OpenFN.lpstrFile, OpenFN.nMaxFile)
            ShowOpen = True
            
        Else
            ShowOpen = False
            
        End If
        
    End FunctionPublic Function ShowSave(MehWnd As Long, _
            FileSave As String, _
            Optional Title As String = "保存:", _
            Optional Filter As String = vbNullChar + vbNullChar, _
            Optional FilterIndex As Long = 0, _
            Optional StartDir As String = vbNullChar, _
            Optional flags As Long = OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT) As Long
        Dim SaveFN As OPENFILENAME
        Dim Rc As Long
        
        With SaveFN
            .hwndOwner = MehWnd
            .hInstance = App.hInstance
            .lpstrTitle = Title
            .lpstrFilter = Filter
            .nFilterIndex = FilterIndex
            .lpstrInitialDir = StartDir
            .lpstrFile = FileSave + String$(255, Chr$(0))
            .nMaxFile = Len(.lpstrFile)
            .lpstrFileTitle = .lpstrFile
            .nMaxFileTitle = 255
            .flags = flags
            .lStructSize = Len(SaveFN)
            
        End With
        
        Rc = GetSaveFileName(SaveFN)
        
        If Rc Then
            FileSave = Left$(SaveFN.lpstrFile, SaveFN.nMaxFile)
            ShowSave = True
            
        Else
            ShowSave = False
            
        End If
        
    End FunctionPublic Function ShowDir(MehWnd As Long, _
            DirPath As String, _
            Optional Title As String = "请选择文件夹:", _
            Optional flage As Long = &H1, _
            Optional DirID As Long) As Long
        Dim BI As BROWSEINFO
        Dim TempID As Long
        Dim TempStr As String
        
        TempStr = String$(255, Chr$(0))
        With BI
            .hOwner = MehWnd
            .pidlRoot = 0
            .lpszTitle = Title + Chr$(0)
            .ulFlage = flage
            
        End With
        
        TempID = SHBrowseForFolder(BI)
        DirID = TempID
        
        If SHGetPathFromIDList(ByVal TempID, ByVal TempStr) Then
            DirPath = Left$(TempStr, InStr(TempStr, Chr$(0)) - 1)
            ShowDir = -1
            
        Else
            ShowDir = 0
            
        End If
        
    End FunctionPublic Function ShowColor(MehWnd As Long, _
            GetColour As Long, _
            Optional flags As Long = 0)
        Dim CC As CHOOSECOLOR
        Dim Rc As Long
        Dim CustC() As Byte
        
        With CC
            .hwndOwner = MehWnd
            .hInstance = App.hInstance
            .lpCustColors = StrConv(CustC, vbUnicode)
            .rgbResult = GetColour
            .flags = flags
            .lStructSize = Len(CC)
            
        End With
        
        Rc = CHOOSECOLOR(CC)
        
        If Rc Then
            GetColour = CC.rgbResult
            ShowColor = -1
            
        Else
            ShowColor = 0
            
        End If
        
    End Function