Hola,
Las imagenes corresponden a tu programa ??
Saludos
Las imagenes corresponden a tu programa ??
Saludos
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Hadess_inf en 22 Enero 2020, 15:48 PM
¿ Puedes publicar parte de tu código para poder ayudarte mejor ?
Saludos.
Private Function MouseProc(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
If (nCode = HC_ACTION) Then
Dim uInfo As MouseHookStruct = CType(Marshal.PtrToStructure(lParam, uInfo.GetType()), MouseHookStruct)
Select Case wParam.ToInt32()
Case WM_LBUTTONDOWN
MouseIsPress = True ''Para verificar si el boton sigue presionado
RaiseEvent MouseDown(Me, New MouseEventArgs(MouseButtons.Left, 1, uInfo.pt.x, uInfo.pt.y, 0))
' double-click hack...
If (m_dtLastLMouseDown.AddMilliseconds(m_iDoubleClickTime).CompareTo(Now) >= 0) Then
RaiseEvent MouseDoubleClick(Me, New MouseEventArgs(MouseButtons.Left, 2, uInfo.pt.x, uInfo.pt.y, 0))
Else
m_dtLastLMouseDown = Now
End If
Case WM_RBUTTONDOWN
RaiseEvent MouseDown(Me, New MouseEventArgs(MouseButtons.Right, 1, uInfo.pt.x, uInfo.pt.y, 0))
' double-click hack...
If (m_dtLastRMouseDown.AddMilliseconds(m_iDoubleClickTime).CompareTo(Now) >= 0) Then
RaiseEvent MouseDoubleClick(Me, New MouseEventArgs(MouseButtons.Right, 2, uInfo.pt.x, uInfo.pt.y, 0))
Else
m_dtLastRMouseDown = Now
End If
Case WM_LBUTTONUP
MouseIsPress = False ''Para verificar si el boton sigue presionado
RaiseEvent MouseUp(Me, New MouseEventArgs(MouseButtons.Left, 1, uInfo.pt.x, uInfo.pt.y, 0))
Case WM_RBUTTONUP
RaiseEvent MouseUp(Me, New MouseEventArgs(MouseButtons.Right, 1, uInfo.pt.x, uInfo.pt.y, 0))
Case Else
If (wParam <> WM_MOUSEMOVE) Then Debug.WriteLine(wParam)
End Select
' uInfo es una estructura y almacena las coordenadas del mouse
' esta funcion esta en una clase y pense en mostrar los valores en par de labels de mi form
' Form1.label1.text = uInfo.pt.x
' Form1.label2.text = uInfo.pt.y
' estas lineas dan el error que ya explicaba, espero a ver sido un poco mas claro
End If
Return CallNextHookEx(m_iMouseHandle, nCode, wParam, lParam)
Cita de: RoyMata en 22 Enero 2020, 17:33 PM
No necesitas variables globales o publicas ni tampoco un timer, ni un metodo en una clase externa. Simplemente utiliza el evento MouseMove dentro del mismo Form:
private void Form1_MouseMouse (Object sender, MouseEventArgs e)
{
this.label1.Text = e.X;
this.label1.Refresh();
this.label2.Text = e.Y;
this.label2.Refresh();
}