Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Aug 26, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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 Long
End Type

Private Declare Function SendMessage Lib _
	"user32" Alias "SendMessageA" (ByVal hWnd As _
	Long, ByVal wMsg As Long, ByVal wParam As _
	Long, lParam As Any) As Long

Private Const WM_USER = &H400
Private 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
		.ForeColor = fgColor
		picPanel.Print aText
		sb.Panels(Index).Text = aText
		sb.Panels(Index).Picture = .Image
	End With
End Sub

Private Sub Form_Load()
	PanelText StatusBar1, 1, "Panel Message", _
		QBColor(1), QBColor(15)
End Sub
Matt Hart
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date