Страница: 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
       
    
       
  
Спасибо!