我想知道如何通过在VB6中使用类模块打开文件对话框。我知道如何以形式进行操作,但是我必须在类模块中打开它。

有帮助吗?

解决方案

看看下面的API:

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
    "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

这是使用中的示例:

    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
        "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

    Private 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 Type

    Private Function FileOpenDialog()
        Dim sFilter As String

        OpenFile.lStructSize = Len(OpenFile)
        sFilter = "Text Files (*.txt)" & Chr(0) & "*.TXT" & Chr(0)
        OpenFile.lpstrFilter = sFilter
        OpenFile.nFilterIndex = 1
        OpenFile.lpstrFile = String(257, 0)
        OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
        OpenFile.lpstrFileTitle = OpenFile.lpstrFile
        OpenFile.nMaxFileTitle = OpenFile.nMaxFile
        OpenFile.lpstrInitialDir = "C:\"
        OpenFile.lpstrTitle = "Select File"
        OpenFile.flags = 0

        lReturn = GetOpenFileName(OpenFile)


    End Function

其他提示

是的,您可以致电API提出此对话框。

尽管大多数情况下,这种需求源于破裂的范式。课堂不应该有UI。当您真正需要此需求时,您的班级可能应该是一个Usercontrol ...问题消失了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top