Private Sub Form_Resize()
If Me.Width = oldsize Then 'if thewidth hasn't been changed
Exit Sub 'then do not mess with it
Else
CenterC Me
oldsize = Me.Width
End If
End Sub
Private Sub Form_Load()
CenterC Me
oldsize = Me.Width
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Module1中的代码
Option Explicit
Public Sub CenterC(frm As Form)
Dim SpcF As Integer 'How many spaces can fit
Dim clen As Integer 'caption length
Dim oldc As String 'old caption
Dim i As Integer 'not important
''remove any spaces at the end soft the caption
''very easy if you read it carefully
oldc = frm.Caption
Do While Left(oldc, 1) = Space(1)
DoEvents
oldc = Right(oldc, Len(oldc) - 1)
Loop
Do While Right(oldc, 1) = Space(1)
DoEvents
oldc = Left(oldc, Len(oldc) - 1)
Loop
clen = Len(oldc)
If InStr(oldc, "!") <> 0 Then
If InStr(oldc, "") <> 0 Then
clen = clen * 1.5
Else
clen = clen * 1.4
End If
Else
If InStr(oldc, "") <> 0 Then
clen = clen * 1.4
Else
clen = clen * 1.3
End If
End If
'''see how many characters can fit
SpcF = frm.Width / 61.2244 ''how many space can fit it the caption
SpcF = SpcF - clen 'How many spaces can fit-How much space the
''caption takes up
'''Now the trick y part
If SpcF > 1 Then
DoEvents 'speed up the program
frm.Caption = Space(Int(SpcF / 2)) + oldc
Else 'if the form is too small for spaces
frm.Caption = oldc
End If
End Sub