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