Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: cobein en 28 Julio 2008, 14:31 pm



Título: API ProgressBar (Source)
Publicado por: cobein en 28 Julio 2008, 14:31 pm
Bueno, aca les dejo una mini clase para crear progressbars con API, es realmente simple pero viene bien cuando no queres incluir una referencia a los controles de VB por una simple barra de progreso.
Código
  1.  
  2. '---------------------------------------------------------------------------------------
  3. ' Module      : cProgBar
  4. ' DateTime    : 28/07/2008 09:23
  5. ' Author      : Cobein
  6. ' Mail        : cobein27@hotmail.com
  7. ' WebPage     : http://cobein27.googlepages.com/vb6
  8. ' Purpose     : Mini ProgressBar class
  9. ' Usage       : At your own risk
  10. ' Requirements: None
  11. ' Distribution: You can freely use this code in your own
  12. '               applications, but you may not reproduce
  13. '               or publish this code on any web site,
  14. '               online service, or distribute as source
  15. '               on any media without express permission.
  16. '
  17. ' History     : 28/07/2008 First Cut....................................................
  18. '---------------------------------------------------------------------------------------
  19. Option Explicit
  20.  
  21. Private Const PROGRESS_CLASSA   As String = "msctls_progress32"
  22.  
  23. Private Const WS_VISIBLE        As Long = &H10000000
  24. Private Const WS_CHILD          As Long = &H40000000
  25.  
  26. Private Const WM_USER           As Long = &H400
  27. Private Const PBM_SETPOS        As Long = (WM_USER + 2)
  28. Private Const PBS_SMOOTH        As Long = &H1
  29. Private Const PBS_VERTICAL      As Long = &H4
  30.  
  31. Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
  32. Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
  33. 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
  34.  
  35. Private c_lhWnd As Long
  36. Private c_lVal  As Long
  37.  
  38. Public Function CreateProgBar( _
  39.       ByVal lhWndOwner As Long, _
  40.       ByVal Left As Long, _
  41.       ByVal Top As Long, _
  42.       ByVal Width As Long, _
  43.       ByVal Heght As Long, _
  44.       Optional ByVal bHorizontal As Boolean = True, _
  45.       Optional ByVal bSmooth As Boolean = False) As Boolean
  46.  
  47.    Dim lFlag As Long
  48.  
  49.    lFlag = WS_CHILD Or WS_VISIBLE
  50.    If Not bHorizontal Then lFlag = lFlag Or PBS_VERTICAL
  51.    If bSmooth Then lFlag = lFlag Or PBS_SMOOTH
  52.  
  53.    If Not c_lhWnd = 0 Then Class_Terminate
  54.  
  55.    c_lhWnd = CreateWindowEx(0, PROGRESS_CLASSA, vbNullString, _
  56.       lFlag, Left, Top, Width, Heght, _
  57.       lhWndOwner, vbNull, App.hInstance, ByVal 0&)
  58.  
  59.    CreateProgBar = Not (c_lhWnd = 0)
  60. End Function
  61.  
  62. Public Property Let Value(ByVal lVal As Long)
  63.    If Not c_lhWnd = 0 Then
  64.        c_lVal = lVal
  65.        Call SendMessage(c_lhWnd, PBM_SETPOS, ByVal lVal, ByVal 0&)
  66.    End If
  67. End Property
  68.  
  69. Public Property Get Value() As Long
  70.    Value = c_lVal
  71. End Property
  72.  
  73. Private Sub Class_Initialize()
  74.    '
  75. End Sub
  76.  
  77. Private Sub Class_Terminate()
  78.    If Not c_lhWnd = 0 Then
  79.        Call DestroyWindow(c_lhWnd)
  80.        c_lhWnd = 0
  81.    End If
  82. End Sub
  83.  


Título: Re: API ProgressBar (Source)
Publicado por: naderST en 28 Julio 2008, 19:33 pm
Excelenteee ;D


Título: Re: API ProgressBar (Source)
Publicado por: seba123neo en 29 Julio 2008, 00:27 am
Hola,bastante sencilla pero buena  :P


Título: Re: API ProgressBar (Source)
Publicado por: krackwar en 29 Julio 2008, 04:52 am
Tu y tus codes .... me encantan!!!! muchas gracias por el code.


Título: Re: API ProgressBar (Source)
Publicado por: el_c0c0 en 29 Julio 2008, 06:56 am
.


Título: Re: API ProgressBar (Source)
Publicado por: emperor en 5 Septiembre 2008, 01:12 am
se ve muy bueno :o, pero como la uso  :-[?


Título: Re: API ProgressBar (Source)
Publicado por: seba123neo en 5 Septiembre 2008, 02:36 am
Cita de: emperor
se ve muy bueno :o, pero como la uso  :-[?

bue...aprende lo que es una clase primero y despues vemos...