不使用commondialog控件打开对话框的vb6代码

不使用commondialog控件打开对话框的vb6代码,vb6,common-dialog,Vb6,Common Dialog,请帮助我创建一个项目,以便在不使用公共对话框组件/控件的情况下打开对话框 问候 SeshaCommonDialog控件是围绕/GetSaveFileNameAPI的薄型包装,您可以直接从VB调用它 CommonDialog控件是围绕/GetSaveFileNameAPI的薄型包装,您可以直接从VB调用它 以下是Microsoft知识库中的一些示例代码 以下是Microsoft知识库中的一些示例代码 您可以使用vbAccelerator.com上的非常好的库:- 您可以使用vbAccelerato

请帮助我创建一个项目,以便在不使用公共对话框组件/控件的情况下打开对话框

问候
Sesha

CommonDialog控件是围绕/
GetSaveFileName
API的薄型包装,您可以直接从VB调用它

CommonDialog控件是围绕/
GetSaveFileName
API的薄型包装,您可以直接从VB调用它

以下是Microsoft知识库中的一些示例代码


以下是Microsoft知识库中的一些示例代码


您可以使用vbAccelerator.com上的非常好的库:-


您可以使用vbAccelerator.com上的非常好的库:-


您当然可以只使用表单和一些辅助隐藏控件来创建完整的VB应用程序。但是这些都是非常先进的技术。Alex K的答案很好,但是你应该指定有很多对话框的类型。@Denzil我需要文件打开对话框,但不使用VB6中的“commondialog”控件。为什么你不想使用ocx?创建“在雷达软件下”可能?例如,在锁定的PC(库、工作、不知情的用户等)上使用的程序,其中没有提升权限,因此无法进行安装。您当然可以仅使用表单和一些辅助隐藏控件来创建完整的VB应用程序。但是这些都是非常先进的技术。Alex K的答案很好,但是你应该指定有很多对话框的类型。@Denzil我需要文件打开对话框,但不使用VB6中的“commondialog”控件。为什么你不想使用ocx?创建“在雷达软件下”可能?例如,在锁定的PC(库、工作、不知情的用户等)上使用的程序,其中没有提升权限,因此无法安装。
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