dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

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
		.Cls
		.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.

 

 

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