Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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

Вот тебе кусок кода,но сразу предупреждаю! Я когда использовал его для MDI, пришлось писать Hook на StatusBar. Иначе ресайз обрабатывается не корректно.

1. Create statusbar with few panels
2. Create invisible progressbar
3. Add test button which calls ShowProgress sub shown below

'Module Declares
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)

Dim rc As RECT

    StatusBar1.Panels("keyProgress").Visible = Mode
   
    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
Спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам