在用API调用通用对话框时,怎样指定文件名,如存为 123.txt

解决方案 »

  1.   

    以下代码放标准模块里:Option Explicit
         
         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
         
         Sub main()
            Dim OpenFile As OPENFILENAME
            Dim lReturn As Long
            Dim sFilter As String
            OpenFile.lStructSize = Len(OpenFile)
            
            sFilter = "Excel Files (*.xls)" & Chr(0) & "*.xls" & 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 = "Use the Comdlg API not the OCX"
            OpenFile.flags = 0
            OpenFile.lpstrFile = "123.txt" '--->指定文件名
            lReturn = GetOpenFileName(OpenFile)
            If lReturn = 0 Then
            MsgBox "The User pressed the Cancel Button"
            Else
            MsgBox "The user Chose " & Trim(OpenFile.lpstrFile)
            End If
         End Sub