2014-04-05 25 views
0

請幫助我創建一個項目,以便在不使用通用對話框組件/控件的情況下打開對話框。vb6代碼打開對話框,無需使用通用對話框控件

問候 色紗

+0

可以肯定只用一個形式和一些輔助隱藏控件創建一個完整的VB應用程序。但這些都是非常先進的技術。 –

+0

亞歷克斯K的答案是一個很好的答案,但是你應該指定什麼類型的對話有很多。 –

+0

@Denzil我需要文件打開對話框,但不使用vb​​6中的「commondialog」控件 – Sesha

回答

4

以下是來自Microsoft知識庫中的一些示例代碼,source

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