2014-04-05 3 views
0

일반 대화 상자 구성 요소/컨트롤을 사용하지 않고 대화 상자를 여는 프로젝트를 만드는 데 도움을주십시오.vb6 코드를 사용하여 대화 상자 컨트롤을 사용하지 않고 대화 상자를 엽니 다.

감사 Sesha

+0

당신은 확실히 단지 형태와 일부 보조 숨겨진 컨트롤을 사용하여 전체 VB 응용 프로그램을 만들 수 있습니다. 그러나 그것들은 매우 진보 된 기술입니다. –

+0

Alex K의 대답은 좋은 것입니다. 그러나 대화 상자의 유형을 충분히 지정해야합니다. –

+0

@Denzil vb6에서 "commondialog"컨트롤을 사용하지 않고 파일 열기 대화 상자가 필요합니다 – Sesha

답변

4

다음은 Microsoft KB의 샘플 코드입니다 (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