增加GetOpenFileName文件选择对话框的文件名字段中的字符数可以通过修改对话框模板来实现。以下是一个简单的示例,展示了如何使用VB6中的对话框模板来增加文件名字段的字符数:
Private Sub Command1_Click()
Dim lCustData As Long
Dim sFile As String
Dim sInitDir As String
Dim sTitle As String
Dim sFilter As String
Dim iFilterIndex As Integer
Dim sFileName As String
Dim iMaxFileTitleLen As Integer
Dim iFlags As Integer
Dim iFileOffset As Integer
Dim iFileExtension As Integer
Dim iFileDescription As Integer
Dim sHook As String
Dim sTemplate As String
' 设置对话框标题
sTitle = "选择文件"
' 设置初始目录
sInitDir = "C:\"
' 设置文件过滤器
sFilter = "所有文件 (*.*)|*.*|文本文件 (*.txt)|*.txt|Excel文件 (*.xlsx)|*.xlsx"
' 设置默认过滤器索引
iFilterIndex = 1
' 设置文件名字段的最大长度
iMaxFileTitleLen = 100
' 设置对话框标志
iFlags = &H4 Or &H10 Or &H200 Or &H80000 Or &H2000000 Or &H40000000 Or &H8000000 Or &H1000000 Or &H200000
' 设置文件名字段的偏移量
iFileOffset = 0
' 设置文件扩展名的偏移量
iFileExtension = 0
' 设置文件描述的偏移量
iFileDescription = 0
' 设置对话框模板
sTemplate = "DLGTEMPLATE " & vbTab & "80, 80, 230, 160, " & sTitle & vbCrLf & _
"STYLE " & vbTab & "WS_CHILD | WS_VISIBLE | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_CLIPSIBLINGS" & vbCrLf & _
"EXSTYLE " & vbTab & "WS_EX_DLGMODALFRAME" & vbCrLf & _
"FONT 8, " & "MS Shell Dlg" & vbCrLf & _
"CLASS " & vbTab & "DIALOGEX" & vbCrLf & _
"CAPTION " & vbTab & """" & sTitle & """" & vbCrLf & _
"BEGIN" & vbCrLf & _
" DEFPUSHBUTTON ""打开"",IDOK,75,140,50,14" & vbCrLf & _
" PUSHBUTTON ""取消"",IDCANCEL,135,140,50,14" & vbCrLf & _
" CONTROL ""文件名: "",Edit,ES_AUTOHSCROLL | ES_LEFT | ES_OEMCONVERT | WS_TABSTOP,75,10,140,12,WS_EX_CLIENTEDGE" & vbCrLf & _
" CONTROL ""文件类型: "",ComboBox,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP,75,30,140,120,WS_EX_CLIENTEDGE" & vbCrLf & _
" CONTROL ""查看"",Static,SS_LEFT,75,50,140,8" & vbCrLf & _
" CONTROL ""路径: "",Static,SS_LEFT,75,60,140,8" & vbCrLf & _
" CONTROL ""文件: "",Static,SS_LEFT,75,70,140,8" & vbCrLf & _
" CONTROL ""文件夹: "",Static,SS_LEFT,75,80,140,8" & vbCrLf & _
" CONTROL ""&上一级"",Button,BS_PUSHBUTTON | WS_TABSTOP,10,140,50,14" & vbCrLf & _
" CONTROL ""&新建文件夹"",Button,BS_PUSHBUTTON | WS_TABSTOP,60,140,50,14" & vbCrLf & _
" CONTROL ""列表"",Static,SS_LEFT,75,90,140,8" & vbCrLf & _
" CONTROL ""&确定"",Button,BS_DEFPUSHBUTTON | WS_TABSTOP,135,140,50,14" & vbCrLf & _
" CONTROL ""&取消"",Button,BS_PUSHBUTTON | WS_TABSTOP,200,140,50,14" & vbCrLf & _
" CONTROL ""&浏览"",Button,BS_PUSHBUTTON | WS_TABSTOP,10,110,50,14" & vbCrLf & _
领取专属 10元无门槛券
手把手带您无忧上云