USO DA RODA DO MOUSE
Como reconhecer a [Ô]RODA[Ô] do mouse nos objetos?
Gostaria de utilizar o recurso de ROLAGEM no PICTURE.
Gostaria de utilizar o recurso de ROLAGEM no PICTURE.
EDERMIR
Você já viu isso
http://support.microsoft.com/?id=837910
Você já viu isso
http://support.microsoft.com/?id=837910
ADHEL.
Já vi e inclusive já enviei a DICA para a equipe do VB.
Esta orientação da Microsoft refere-se ao uso da roda do mouse durante a EDIÇÃO da aplicação. Já instalei e funciona muito bem.
Meu problema é fazer com que a aplicação reconheça que a roda está sendo acionada e, portanto controlar o seu uso.
Eu utilizo o PICTURE e gostaria de rolar conforme giro a roda.
Já vi e inclusive já enviei a DICA para a equipe do VB.
Esta orientação da Microsoft refere-se ao uso da roda do mouse durante a EDIÇÃO da aplicação. Já instalei e funciona muito bem.
Meu problema é fazer com que a aplicação reconheça que a roda está sendo acionada e, portanto controlar o seu uso.
Eu utilizo o PICTURE e gostaria de rolar conforme giro a roda.
Olá Edermir, tem esse projeto exemplo que utililiza scroll com a roda em vários componentes não testei com picture. Dê uma olhada.
tentei aqui não consegui adaptá-los, pois existe proriedades no proj que a picture não tem, tenho um outro projeto que tem scroll em picture, mais a roda não funciona, vou tentar adaptá-lose conseguir eu posto.
Eu uso o código abaixo para a roda do mouse em um FlexGrid, nunca testei em um pictirebox.
Private Sub Form_Load()
Dim lRet1 As Long
lProcJanOrig1 = apiLerIdentJan(Me.hwnd, GWL_WNDPROC)
lRet1 = apiGrvIdentJan(Me.hwnd, GWL_WNDPROC, AddressOf lProcJan1)
End Sub
Private Sub Grid_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
Set mygrid = Grid
End Sub
Public Const GWL_WNDPROC = (-4)
Public lProcJanOrig1 As Long [ô]**************** referente ao formulario n° 1
[ô]Public lProcJanOrig2 As Long [ô]**************** referente ao formulario n° 2
[ô] para um 3° form crie outra linha troque o 2 por 3,4,5
Public Declare Function apiGrvIdentJan Lib [Ô]user32[Ô] Alias [Ô]SetWindowLongA[Ô] (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function apiLerIdentJan Lib [Ô]user32[Ô] Alias [Ô]GetWindowLongA[Ô] (ByVal hwnd As Long, ByVal nIndex As Long) As Long
[ô]?????????????////////////////////////////////////////////////////////
Private Const WM_MOUSEWHEEL = &H20A
Private Declare Function apiExecProcJan 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
Public mygrid As Object
Public Sub ScrollUp()
If mygrid.TopRow > 1 And mygrid.Rows > 31 Then
mygrid.TopRow = mygrid.TopRow
mygrid.TopRow = mygrid.TopRow - 1
mygrid.TopRow = mygrid.TopRow
End If
End Sub
Public Sub ScrollDown()
If mygrid.TopRow < mygrid.Rows - 1 And mygrid.Rows > 31 Then
mygrid.TopRow = mygrid.TopRow
mygrid.TopRow = mygrid.TopRow + 1
mygrid.TopRow = mygrid.TopRow
End If
End Sub
Public Function lProcJan1(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If (wMsg = WM_MOUSEWHEEL) Then
If (wParam > 0) Then
Call ScrollUp
Else
Call ScrollDown
End If
End If
lProcJan1 = apiExecProcJan(lProcJanOrig1, hwnd, wMsg, wParam, lParam)
End Function
Private Sub Form_Load()
Dim lRet1 As Long
lProcJanOrig1 = apiLerIdentJan(Me.hwnd, GWL_WNDPROC)
lRet1 = apiGrvIdentJan(Me.hwnd, GWL_WNDPROC, AddressOf lProcJan1)
End Sub
Private Sub Grid_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
Set mygrid = Grid
End Sub
Public Const GWL_WNDPROC = (-4)
Public lProcJanOrig1 As Long [ô]**************** referente ao formulario n° 1
[ô]Public lProcJanOrig2 As Long [ô]**************** referente ao formulario n° 2
[ô] para um 3° form crie outra linha troque o 2 por 3,4,5
Public Declare Function apiGrvIdentJan Lib [Ô]user32[Ô] Alias [Ô]SetWindowLongA[Ô] (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function apiLerIdentJan Lib [Ô]user32[Ô] Alias [Ô]GetWindowLongA[Ô] (ByVal hwnd As Long, ByVal nIndex As Long) As Long
[ô]?????????????////////////////////////////////////////////////////////
Private Const WM_MOUSEWHEEL = &H20A
Private Declare Function apiExecProcJan 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
Public mygrid As Object
Public Sub ScrollUp()
If mygrid.TopRow > 1 And mygrid.Rows > 31 Then
mygrid.TopRow = mygrid.TopRow
mygrid.TopRow = mygrid.TopRow - 1
mygrid.TopRow = mygrid.TopRow
End If
End Sub
Public Sub ScrollDown()
If mygrid.TopRow < mygrid.Rows - 1 And mygrid.Rows > 31 Then
mygrid.TopRow = mygrid.TopRow
mygrid.TopRow = mygrid.TopRow + 1
mygrid.TopRow = mygrid.TopRow
End If
End Sub
Public Function lProcJan1(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If (wMsg = WM_MOUSEWHEEL) Then
If (wParam > 0) Then
Call ScrollUp
Else
Call ScrollDown
End If
End If
lProcJan1 = apiExecProcJan(lProcJanOrig1, hwnd, wMsg, wParam, lParam)
End Function
Obrigado a todos.
Continuo aguardando uma [Ô]luz[Ô]
Continuo aguardando uma [Ô]luz[Ô]
Tópico encerrado , respostas não são mais permitidas