OpenSaveDlg.cls
上传用户:davilee3
上传日期:2015-04-22
资源大小:986k
文件大小:5k
源码类别:

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "OpenSaveDlg"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. Option Explicit
  17. Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
  18. Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
  19. Private Type OPENFILENAME
  20.         lStructSize As Long
  21.         hwndOwner As Long
  22.         hInstance As Long
  23.         lpstrFilter As String
  24.         lpstrCustomFilter As String
  25.         nMaxCustFilter As Long
  26.         nFilterIndex As Long
  27.         lpstrFile As String
  28.         nMaxFile As Long
  29.         lpstrFileTitle As String
  30.         nMaxFileTitle As Long
  31.         lpstrInitialDir As String
  32.         lpstrTitle As String
  33.         Flags As Long
  34.         nFileOffset As Integer
  35.         nFileExtension As Integer
  36.         lpstrDefExt As String
  37.         lCustData As Long
  38.         lpfnHook As Long
  39.         lpTemplateName As String
  40. End Type
  41. Public Enum enuDlgFlgs
  42.     OFN_ALLOWMULTISELECT = &H200&
  43.     OFN_CREATEPROMPT = &H2000&
  44.     OFN_DONTADDTORECENT = &H2000000
  45.     OFN_ENABLEHOOK = &H20&
  46.     OFN_ENABLEINCLUDENOTIFY = &H400000
  47.     OFN_ENABLESIZING = &H800000
  48.     OFN_ENABLETEMPLATE = &H40&
  49.     OFN_ENABLETEMPLATEHANDLE = &H80&
  50.     OFN_EX_NOPLACESBAR = &H1&
  51.     OFN_EXPLORER = &H80000
  52.     OFN_EXTENSIONDIFFERENT = &H400&
  53.     OFN_FILEMUSTEXIST = &H1000&
  54.     OFN_FORCESHOWHIDDEN = &H10000000
  55.     OFN_HIDEREADONLY = &H4&
  56.     OFN_LONGNAMES = &H200000
  57.     OFN_NOCHANGEDIR = &H8&
  58.     OFN_NODEREFERENCELINKS = &H100000
  59.     OFN_NOLONGNAMES = &H40000
  60.     OFN_NONETWORKBUTTON = &H20000
  61.     OFN_NOREADONLYRETURN = &H8000
  62.     OFN_NOTESTFILECREATE = &H10000
  63.     OFN_NOVALIDATE = &H100&
  64.     OFN_OVERWRITEPROMPT = &H2&
  65.     OFN_PATHMUSTEXIST = &H800&
  66.     OFN_READONLY = &H1&
  67.     OFN_SHAREAWARE = &H4000&
  68.     OFN_SHAREFALLTHROUGH = 2&
  69.     OFN_SHARENOWARN = 1&
  70.     OFN_SHAREWARN = 0&
  71.     OFN_SHOWHELP = &H10&
  72.     OFN_USEMONIKERS = &H1000000
  73. End Enum
  74. Public Filter As String
  75. Public Flags As enuDlgFlgs
  76. Public InitDir As String
  77. Public DialogTitle As String
  78. Public FileTitle As String
  79. Public FileName As String
  80. Public Function ShowSave(hOwner As Long) As Boolean
  81. Dim ofn As OPENFILENAME
  82. Dim rtn As Long
  83. With ofn
  84.     .lStructSize = Len(ofn)
  85.     .hwndOwner = hOwner
  86.     .hInstance = App.hInstance
  87.     .lpstrFilter = Replace(Filter, "|", Chr(0))
  88.     
  89.     .lpstrFile = Left(FileName & Chr(0) & Space(254), 254)
  90.     
  91.     .nMaxFile = 255
  92.     
  93.     .lpstrFileTitle = Space(254)
  94.     .nMaxFileTitle = 255
  95.     
  96.     .lpstrInitialDir = InitDir
  97.     'If InitDir <> "" Then .lpstrInitialDir = InitDir Else .lpstrInitialDir = "" 'vbNullString ' App.Path
  98.     
  99.     If DialogTitle <> "" Then
  100.         .lpstrTitle = DialogTitle
  101.     Else
  102.         .lpstrTitle = "保存"
  103.     End If
  104.     
  105.     .Flags = Flags
  106. End With
  107. rtn = GetSaveFileName(ofn)
  108. If rtn >= 1 Then
  109.     ShowSave = True
  110.     FileName = Trim$(ofn.lpstrFile)
  111.     FileName = Left$(FileName, Len(FileName) - 1)
  112.     FileTitle = Trim$(ofn.lpstrFileTitle)
  113.     If FileTitle <> "" Then FileTitle = Left$(FileTitle, Len(FileTitle) - 1)
  114.     InitDir = ofn.lpstrInitialDir
  115.   Else
  116.     ShowSave = False
  117. End If
  118. DialogTitle = ""
  119. End Function
  120. Public Function ShowOpen(hOwner As Long) As Boolean
  121.     
  122. Dim ofn As OPENFILENAME
  123. Dim rtn As Long
  124. With ofn
  125.     .lStructSize = Len(ofn)
  126.     .hwndOwner = hOwner
  127.     .hInstance = App.hInstance
  128.     .lpstrFilter = Replace(Filter, "|", Chr(0))
  129.     
  130.     .lpstrFile = Left(FileName & Chr(0) & Space(254), 254)
  131.     
  132.     .nMaxFile = 255
  133.     
  134.     .lpstrFileTitle = Space(254)
  135.     .nMaxFileTitle = 255
  136.     
  137.     .lpstrInitialDir = InitDir
  138.     'If InitDir <> "" Then .lpstrInitialDir = InitDir Else .lpstrInitialDir = "" 'vbNullString ' App.Path
  139.     If DialogTitle <> "" Then
  140.         .lpstrTitle = DialogTitle
  141.     Else
  142.         .lpstrTitle = "打开"
  143.     End If
  144.     
  145.     .Flags = Flags
  146. End With
  147. rtn = GetOpenFileName(ofn)
  148. If rtn >= 1 Then
  149.     ShowOpen = True
  150.     FileName = Trim$(ofn.lpstrFile)
  151.     FileName = Left$(FileName, Len(FileName) - 1)
  152.     FileTitle = Trim$(ofn.lpstrFileTitle)
  153.     If FileTitle <> "" Then FileTitle = Left$(FileTitle, Len(FileTitle) - 1)
  154.     InitDir = ofn.lpstrInitialDir
  155.   Else
  156.     ShowOpen = False
  157. End If
  158. 'Debug.Print ofn.nFileOffset
  159. DialogTitle = ""
  160. End Function
  161. 'Private Sub Class_Initialize()
  162. 'Flags = OFN_ALLOWMULTISELECT Or OFN_EXPLORER
  163. 'End Sub
  164. '