2014-04-05 24 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