Autor Tema: [src] Seek Bar  (Leído 2857 veces)

0 Usuarios y 1 Visitante están viendo este tema.

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
[src] Seek Bar
« en: Enero 01, 2010, 06:44:26 pm »
Esto es parte del proximo proyecto que voy a postiar. Se trata de una barra de deslizamiento, que es similar a los reproductores de sonido. Osea, es distinta a la ScrollBar comun.

Bastante customizable quedo. Pueden cambiar las imagenes de fondo (que son imagenes comunes) con la propiedad Images (el numero index es la imagen que quieren cambiar). Despues, el puntero o Seeker, es un icono de 32bits con Alpha (para que quede mas canchero) y para cambiarlo hay que llamar a la funcion LoadSeekerNormal, LoadSeekerHover y LoadSeekerDown. Puede ser un path a un icono, o un icono en un recurso.

sin mas, bajatelo de aca

saludos y feliz 2003
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:[src] Seek Bar
« Respuesta #1 en: Enero 02, 2010, 06:50:10 pm »
esta bueno coco, tiene facha, lo unico que tuvieras que ver es el tema del mouse cuando esta precionando el botoncito si te salis de encima de este se pierde el desplasamiento, osea mientras este el mouse precionado el slide tuviera que seguir el puntero del mouse este o no ensima del mismo.

Saludos.

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:[src] Seek Bar
« Respuesta #2 en: Enero 02, 2010, 07:03:04 pm »
esta bueno coco, tiene facha, lo unico que tuvieras que ver es el tema del mouse cuando esta precionando el botoncito si te salis de encima de este se pierde el desplasamiento, osea mientras este el mouse precionado el slide tuviera que seguir el puntero del mouse este o no ensima del mismo.

Saludos.

lo hice aproposito a eso.. me gusto mas asi.. eso se puede cambiar en el Wnd_proc en el select case..

Saludos
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

Tack0

  • Bit
  • Mensajes: 4
  • Reputación: +0/-0
    • Ver Perfil
Re:[src] Seek Bar
« Respuesta #3 en: Septiembre 09, 2011, 10:12:27 am »
Buenos dias coco,

ante todo agradecer por este post, llevo mucho tiempo buscando un ocx o ctl de un scroll horizontal y vertical que pueda ser tematizado (office 2007, 2010, xp, etc) y que tenga el evento de la rueda del mouse para hacer scroll (ademas de los clásicos botones izquierdo y derecho).

la ocx convencional del vb6 no tiene temas (lo del scroll con la rueda del mouse lo resolvi con un codigo que descargue y me sirvió), posteriormente descargué las librerias del codejock (que si tienen temas) pero no cogen el scroll con la rueda del mouse. El control framework permite tematizar los controles convencionales pero el scroll con la rueda del mouse con el codigo anteriorme nte mencionado ya no trabaja.

en resumen, su control pudiera ayudarme mucho y por eso le agradezco.

Pregunto:

Tiene una version mas avanzada del mismo o esto es ya un proyecto cerrado?.

Pudiera pensar en hacer un control similar no para mimetizar la barra de desplazamiento de windows media sino para hacer un scroll horizontal/vertical que pueda ser tematizado y que además responda al evento del scroll con la rueda del mouse?.

saludos,

Tack0

nota: el código que mencionaba anteriormente se lo pongo a continuacion
Código: [Seleccionar]
' Funciones API para hacer trapping a los botones del mouse para agregar a un scrollbar
' el scroll del mouse y eliminar de los controles textbox el menu emergente.
'-----------------------------------------------------------------------------
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal msg As Long, wParam As Any, lParam As Any) As Long
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Const GWL_WNDPROC = (-4)
Const WM_RBUTTONDOWN = &H204
Const SM_CYHSCROLL = 3
Const SM_CXVSCROLL = 2
Private Const WM_MOUSEWHEEL = &H20A
Private Const WM_VSCROLL As Integer = &H115

Public PrevProc As Long
' Procedimiento de ventana que devuelve el puntero al boton que se presiona
'-----------------------------------------------------------------------------
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  If uMsg = WM_RBUTTONDOWN Then Exit Function
  WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
  If uMsg = WM_MOUSEWHEEL Then
        If wParam < 0 Then
            'Scroll hacia abajo
            SendMessage hwnd, WM_VSCROLL, ByVal 1, ByVal hwnd
                    Else
            ' scroll hacia arriba
            SendMessage hwnd, WM_VSCROLL, ByVal 0, ByVal hwnd
        End If
  End If
End Function

' instala el hook
Public Sub Hook(Obj As Object)
    PrevProc = SetWindowLong(Obj.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

' quita el hook
Public Sub UnHook(Obj As Object)
    SetWindowLong Obj.hwnd, GWL_WNDPROC, PrevProc
    PrevProc& = 0
End Sub
« última modificación: Septiembre 09, 2011, 10:17:37 am por xkiz ™ »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:[src] Seek Bar
« Respuesta #4 en: Septiembre 09, 2011, 03:16:29 pm »
Muy bueno Coco, gracias por el aporte!!!.
Me encuentras en YAcosta.com