vb6のクラスモジュールを使用してファイルダイアログを開く方法を知りたいです。フォームでの方法は知っていますが、クラスモジュール内から開く必要があります。
質問する
2329 次
2 に答える
1
はい、APIを呼び出してこのダイアログを表示できます。
ほとんどの場合、この種のニーズは壊れたパラダイムから生じています。クラスにはUIを含めるべきではありません。これが本当に必要な場合、クラスはおそらくUserControlである必要があります...そして問題はなくなります。
于 2010-05-27T02:49:30.670 に答える
1
以下のAPIをご覧ください。
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
使用中のサンプルは次のとおりです。
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 Function FileOpenDialog()
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Text Files (*.txt)" & Chr(0) & "*.TXT" & 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 = "Select File"
OpenFile.flags = 0
lReturn = GetOpenFileName(OpenFile)
End Function
于 2010-05-26T07:26:16.473 に答える