comdlg32打开对话框的最终解决方案

comdlg32打开对话框的最终解决方案 [2005-12-27]
'用windows的打开对话框API函数
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" _
                                     (pOpenFileName As OPENFILENAME) As Long
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
Dim strSOldPathString As String

'
Public Function mOpenDialog(ByVal ohWnd As Form, ByVal sFilter As String) As String
    Dim ofn As OPENFILENAME
    Dim sFileName As String, sNewFilter As String
    On Error GoTo errOpenDialog
   
    ofn.lStructSize = Len(ofn)
    ofn.hwndOwner = ohWnd.hWnd
    ofn.hInstance = App.hInstance
    If Len(sFilter) = 0 Then
       ofn.lpstrFilter = "所有文件(*.*)" & Chr(0) & "*.*"
    Else
       sNewFilter = mFilterFormat(sFilter)
       ofn.lpstrFilter = "所有文件(*.*)" & Chr(0) & "*.*" & Chr(0) & sNewFilter
    End If
    ofn.lpstrFile = Space(254)
    ofn.nMaxFile = 255
    ofn.lpstrFileTitle = Space(254)
    ofn.nMaxFileTitle = 255
    ofn.lpstrInitialDir = App.Path
    ofn.lpstrTitle = "打开文件"
    ofn.flags = 6148
   
    sFileName = GetOpenFileName(ofn)
    If sFileName >= 1 Then
        mOpenDialog = ofn.lpstrFile
        strSOldPathString = ofn.lpstrFile
    Else
        mOpenDialog = strSOldPathString
    End If
    Exit Function
errOpenDialog:
    MsgBox "发生错误:" & Err.Description & Chr(13) + Chr(10) & "错误编号:" & CStr(Err.Number), vbQuestion, "错误"
    Exit Function
End Function

Private Function mFilterFormat(ByVal sString As String) As String
    Dim i As Long, iLen As Long
    Dim sTemp As String
    Dim sMidStr As String
    On Error GoTo errfilter
    iLen = Len(sString)
    For i = 1 To iLen
        sTemp = Mid(sString, i, 1)
        If sTemp = "/" Then
           sTemp = Chr(0)
        End If
        mFilterFormat = mFilterFormat & sTemp
    Next i
    Exit Function
errfilter:
    MsgBox "发生错误:" & Err.Description & Chr(10) + Chr(13) & "错误编号:" & CStr(Err.Number), vbQuestion, "错误"
    Exit Function
End Function
'======目标操作过程=======
'Private Sub OpenObj()
'    Me.Caption = OpenDialog(Me, "Bitmap(*.Bmp)/*.bmp/") '"/"为Filte分隔符'
'    Debug.Print nFile    '测试
'End Sub

 
 
 
 

comdlg32.ocx是Microsoft Windows操作系统的一个文件,它是一个控件文件,为用户界面提供了一些常用的对话框和窗口。 comdlg32.ocx文件包含了一系列的函数和方法,用于创建和管理常见的对话框,例如打开文件对话框、保存文件对话框、字体对话框、颜色对话框等。这些对话框能够让用户选择文件、保存文件、选择字体以及选择颜色。这些对话框的功能非常常用,几乎在每个Windows应用程序中都会用到。 要在应用程序中使用comdlg32.ocx,首先需要将该文件注册到Windows操作系统中。可以使用regsvr32命令来注册该文件,这样,系统才能够识别和使用该文件。一旦成功注册,就可以在开发环境中引用该控件,然后在代码中进行调用并使用相关的函数和方法。 comdlg32.ocx文件在开发应用程序时非常有用,它为开发人员提供了一些方便、易用的对话框和窗口,可以极大地简化程序的开发过程。开发人员可以基于该文件的功能来创建自定义的对话框,以及利用其提供的其他功能来增强应用程序的用户界面和体验。同时,这个文件还可以帮助开发人员简化用户选择文件、保存文件、选择字体和颜色等常见操作的过程。 总之,comdlg32.ocx是一个用于创建和管理常见对话框和窗口的控件文件,可以在Windows应用程序的开发中发挥重要作用,简化开发人员的工作,提高应用程序的用户界面和体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值