Страница: 1 |
Вот тебе кусок кода,но сразу предупреждаю! Я когда использовал его для MDI, пришлось писать Hook на StatusBar. Иначе ресайз обрабатывается не корректно. 1. Create statusbar with few panels 'Module Declares Dim rc As RECT StatusBar1.Panels("keyProgress").Visible = Mode Страница: 1 |
Вопрос: Bar - ы
Добавлено: 15.12.03 16:38
Автор вопроса: cresta
У кого-нибудь есть кусочек кода как вставить в StatusBar ProgressBar? Поделитесь пожалуста
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #1
Добавлено: 15.12.03 16:52
А почему просто не разместить ProgressBar поверх StatusBar-а и при ресайзе формы перемещать его вместе с StatusBar-ом.
Номер ответа: 2
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 15.12.03 19:35
Не выйдет, в MDI интерфейсе прогрессбар не сдвинешь с места. Как прибитый стоит под Тулбаром. А Статусбар внизу
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 15.12.03 19:57
2. Create invisible progressbar
3. Add test button which calls ShowProgress sub shown below
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long,
ByVal hWndNewParent As Long) As Long
Public Declare Function SendMessageAny Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, lParam As
Any) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Const WM_USER = &H400
Public Const SB_GETRECT = (WM_USER + 10)
Private Sub ShowProgress(Mode As Boolean)
If Mode Then
'2 => Panel index (0 based)
SendMessageAny StatusBar1.hwnd, SB_GETRECT, 2, rc
With rc
.Top = .Top * Screen.TwipsPerPixelY
.Left = .Left * Screen.TwipsPerPixelX
.Bottom = .Bottom * Screen.TwipsPerPixelY - .Top
.Right = .Right * Screen.TwipsPerPixelX - .Left
End With
With ProgressBar1
SetParent .hwnd, StatusBar1.hwnd
.Move rc.Left, rc.Top, rc.Right, rc.Bottom
.Visible = True
.Value = 0
End With
Else
SetParent ProgressBar1.hwnd, Me.hwnd
ProgressBar1.Visible = False
End If
End Sub
Номер ответа: 4
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #4
Добавлено: 15.12.03 20:27
Спасибо!