Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

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



Application Security Testing: An Integral Part of DevOps

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