Shiz писал(а):subj
Sub PBinSB(ByVal SB As StatusBar, ByVal PB As ProgressBar, ByVal sPanelKey As String)
SB.Align = vbAlignBottom
SB.Refresh
PB.left = SB.Panels(sPanelKey).left + 25
PB.Width = SB.Panels(sPanelKey).Width - 45
PB.top = SB.top + 45
PB.Height = SB.Height - 75
End Sub
' Использование:
Sub ShowPb(ByVal sPanelKey As String,Optional strSbrMessage As String) 'отображает
PBinSB sbrStatus, LoadProgressBar, "sPanelKey"
LoadProgressBar.Visible = True
If Not IsMissing(strSbrMessage) Then
sbrStatus.Panels(sPanelKey).Text = Trim$(strSbrMessage)
End If
End Sub
Sub HidePb(ByVal sPanelKey As String) 'скрывает
LoadProgressBar.Visible = False
sbrStatus.Panels(sPanelKey).Text = vbNullString
sbrStatus.Refresh
End Sub
Sub Main()
ShowPb "ProgressPanel", "Построение списка тредов... "
' ..... некоторый код ...........
Hide PB "ProgressPanel"
End Sub
Shiz писал(а):2Ruslan Demidow
Спасибо! А как быть при Resiz'е
BV писал(а):2 Ruslan Demidow
Твой способ неверен (читай через Ж), ведь афтару нужно именно в Panel на StatusBar'е, а не на неё. Так что только SetParent + GetWindowRect + SetWindowPos.
BV писал(а):SetParent'ом. Поиск!
Shiz писал(а):BV писал(а):SetParent + GetWindowRect + SetWindowPos
Можешь поподробней?
Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 96