⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modcommondialog.bas

📁 VB网络应用,例如:聊天系统,浏览器程序
💻 BAS
字号:
Attribute VB_Name = "modCommonDialog"
Option Explicit

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

Public Const OFN_READONLY = &H1
Public Const OFN_OVERWRITEPROMPT = &H2
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_NOCHANGEDIR = &H8
Public Const OFN_SHOWHELP = &H10
Public Const OFN_ENABLEHOOK = &H20
Public Const OFN_ENABLETEMPLATE = &H40
Public Const OFN_ENABLETEMPLATEHANDLE = &H80
Public Const OFN_NOVALIDATE = &H100
Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_EXTENSIONDIFFERENT = &H400
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_CREATEPROMPT = &H2000
Public Const OFN_SHAREAWARE = &H4000
Public Const OFN_NOREADONLYRETURN = &H8000
Public Const OFN_NOTESTFILECREATE = &H10000
Public Const OFN_NONETWORKBUTTON = &H20000
Public Const OFN_NOLONGNAMES = &H40000                      '  force no long names for 4.x modules
Public Const OFN_EXPLORER = &H80000                         '  new look commdlg
Public Const OFN_NODEREFERENCELINKS = &H100000
Public Const OFN_LONGNAMES = &H200000                       '  force long names for 3.x modules

Public Const OFN_SHAREFALLTHROUGH = 2
Public Const OFN_SHARENOWARN = 1
Public Const OFN_SHAREWARN = 0

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private msInitDir As String

Function SaveDialog(Form1 As Form, Filter As String, Title As String, _
                    Optional InitDir As String, Optional Flags As Long _
                    = OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT Or OFN_CREATEPROMPT) As String
 
Dim ofn As OPENFILENAME
Dim A As Long
  ofn.lStructSize = Len(ofn)
  ofn.hwndOwner = Form1.HWnd
  ofn.hInstance = App.hInstance
  If Right$(Filter, 1) <> "|" Then Filter = Filter + "|"
  For A = 1 To Len(Filter)
    If Mid$(Filter, A, 1) = "|" Then Mid$(Filter, A, 1) = Chr$(0)
  Next
  ofn.lpstrFilter = Filter
  ofn.lpstrFile = Space$(254)
  ofn.nMaxFile = 255
  ofn.lpstrFileTitle = Space$(254)
  ofn.nMaxFileTitle = 255
  If Trim$(InitDir) <> "" Then
    msInitDir = InitDir
  Else
    msInitDir = App.Path
  End If
  ofn.lpstrInitialDir = msInitDir
  ofn.lpstrTitle = Title
  ofn.Flags = Flags
  A = GetSaveFileName(ofn)

  If (A) Then
    SaveDialog = Trim$(ofn.lpstrFile)
  Else
    SaveDialog = ""
  End If

End Function

Function OpenDialog(Form1 As Form, Filter As String, Title As String, _
                    Optional InitDir As String, Optional Flags As Long _
                    = OFN_FILEMUSTEXIST) As String
 
Dim ofn As OPENFILENAME
Dim A As Long
  ofn.lStructSize = Len(ofn)
  ofn.hwndOwner = Form1.HWnd
  ofn.hInstance = App.hInstance
  If Right$(Filter, 1) <> "|" Then Filter = Filter + "|"
  For A = 1 To Len(Filter)
      If Mid$(Filter, A, 1) = "|" Then Mid$(Filter, A, 1) = Chr$(0)
  Next
  ofn.lpstrFilter = Filter
  ofn.lpstrFile = Space$(254)
  ofn.nMaxFile = 255
  ofn.lpstrFileTitle = Space$(254)
  ofn.nMaxFileTitle = 255
  If Trim$(InitDir) <> "" Then
    msInitDir = InitDir
  Else
    If Trim$(msInitDir) = "" Then msInitDir = App.Path
  End If
  ofn.lpstrInitialDir = msInitDir
  ofn.lpstrTitle = Title
  ofn.Flags = Flags
  A = GetOpenFileName(ofn)

  If (A) Then
    OpenDialog = Trim$(ofn.lpstrFile)
  Else
    OpenDialog = ""
  End If

End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -