Как настроить цвета и шрифт в панели Statusbar
Делается это при помощи
контрола PictureBox и API функций. Каждая панель statusbar
может отображать объект Picture, поэтому Вы можете
использовать невидимый элемент управления PictureBox
с фоном, шрифтом и видимыми элементами, и связать
картинку PictureBox с объектом Picture в панели статуса.
Объект Panel имеет свойство Width, не не имеет
свойства Height. При помощи API функции SendMessage можно
получить высоту. Поместите PictureBox на форму и
назовите её picStatus, установив AutoRedraw в True, а Visible в
False.
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
|