You can easily customize the fonts and colors in individual statusbar panels using a PictureBox control and an API call. Each statusbar panel can display a Picture object, so you can use an invisible PictureBox control with the background, font, and foreground elements you want and assign that PictureBox image to the Picture object of a statusbar panel. The Panel object exposes a Width property, but not a Height property. The SendMessage API function can retrieve that height. Place a PictureBox on a form and set its Name to picStatus, set AutoRedraw to True, and set Visible to False. Change the Font object of the statusbar to a Panel’s preferences before calling the PanelText procedure:
Private Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypePrivate Declare Function SendMessage Lib _ "user32" Alias "SendMessageA" (ByVal hWnd As _ Long, ByVal wMsg As Long, ByVal wParam As _ Long, lParam As Any) As LongPrivate Const WM_USER = &H400Private Const SB_GETRECT = (WM_USER + 10)Private Sub PanelText(sb As StatusBar, Index As _ Long, aText As String, bkColor As Long, _ fgColor As Long) Dim R As RECT SendMessage sb.hWnd, SB_GETRECT, Index - 1, R With picPanel Set .Font = sb.Font .Move 0, 0, (R.Right - R.Left + 1) * _ Screen.TwipsPerPixelX, (R.Bottom - _ R.Top + 1) * Screen.TwipsPerPixelY .BackColor = bkColor .Cls .ForeColor = fgColor picPanel.Print aText sb.Panels(Index).Text = aText sb.Panels(Index).Picture = .Image End WithEnd SubPrivate Sub Form_Load() PanelText StatusBar1, 1, "Panel Message", _ QBColor(1), QBColor(15)End Sub