Center Caption On Form Title Bar

Module Code

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 'oldcaption
    Dim i As Integer
 
    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 cam fit in the caption
    SpcF = SpcF - clen
 
    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

Form Code

Dim oldsize As Long
  
Private Sub Form_Resize()
    If Me.Width = oldsize Then 'if the width hasn't changed
       
Exit Sub 'then don't change the caption location
   
Else
        CenterC Me
        oldsize = Me.Width
    End If
End Sub
 
Private Sub Form_Load()
    CenterC Me
    oldsize = Me.Width
End Sub

Go Back