使用与 Win32API 文件通用对话框打开对话框

       'http://support.microsoft.com/kb/161286/
       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

       
Private   Sub  Command1_Click()
         
Dim  OpenFile  As  OPENFILENAME
         
Dim  lReturn  As   Long
         
Dim  sFilter  As   String
         OpenFile.lStructSize 
=   Len (OpenFile)
         OpenFile.hwndOwner 
=  Form1.hWnd
         OpenFile.hInstance 
=  App.hInstance
         sFilter 
=   " Batch Files (*.bat) "   &   Chr ( 0 &   " *.BAT "   &   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
         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
 

你可能感兴趣的:(使用与 Win32API 文件通用对话框打开对话框)