Customize Colors and Fonts for Statusbar Panels

Customize Colors and Fonts for Statusbar Panels

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


Share the Post: