canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  119

Foros de programación, recursos, tutoriales, sistemas operativos...

Bienvenido a la zona de foros. Participa en alguno de nuestros foros: Foros de visual basic, foros de visual basic.net foros de Crystal reports, foros de C++ - C# , foros de Java, foros de PHP, foros de ASP.net. Seguro que hay un foro que te servirá de gran utilidad y si no lo encuentras avísanos y crearemos uno nuevo.
 

Retroceder   Foro > Recursos y tutoriales > Sistema
 
LinkBack Herramientas Buscar en Tema Desplegado
  #1 (permalink)  
Antiguo 11-Jan-2009, 15:58
Avatar de Leandro
Moderador
Veteran@
 
Fecha de Ingreso: 08-December-2005
Mensajes: 548
Enviar un mensaje por MSN a Leandro Enviar un mensaje por Yahoo  a Leandro
Predeterminado

Hola estas son dos apis algo desconocidas, al menos para mi , y me llamaron mucho la atencion

nos evitan de utilizar un sublcass, ya que usa un bucle interceptando el msg buscado. ademas este bucle no consume el CPU.

pongo un ejemplito bien basico para interceptar la rueda del raton.


vb Código:
  1. Option Explicit
  2.  
  3. Private Const PM_REMOVE = &H1
  4.  
  5. Private Type POINTAPI
  6.  x As Long
  7.  y As Long
  8. End Type
  9.  
  10. Private Type Msg
  11.  hwnd As Long
  12.  Message As Long
  13.  wParam As Long
  14.  lParam As Long
  15.  time As Long
  16.  pt As POINTAPI
  17. End Type
  18.  
  19. Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
  20. Private Declare Function WaitMessage Lib "user32" () As Long
  21. Private bCancel As Boolean
  22.  
  23. Private Const WM_MOUSEWHEEL = 522
  24.  
  25. Private Sub ProcessMessages()
  26. Dim Message As Msg
  27. Do While bCancel = False
  28.  WaitMessage
  29.  If PeekMessage(Message, Me.hwnd, WM_MOUSEWHEEL, WM_MOUSEWHEEL, PM_REMOVE) Then
  30.  If Message.wParam < 0 Then
  31.  Debug.Print "Scroll Down"
  32.  Else
  33.  Debug.Print "Scroll Up"
  34.  End If
  35.  End If
  36.  DoEvents
  37.  Loop
  38. End Sub
  39.  
  40. Private Sub Form_Load()
  41. Me.Show
  42. ProcessMessages
  43. End Sub
  44.  
  45. Private Sub Form_Unload(Cancel As Integer)
  46.  bCancel = True
  47. End Sub

Última edición por seba123neo; 06-Sep-2009 a las 04:06
Responder Citando
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado



La franja horaria es GMT +2. Ahora son las 23:02.


Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2010 canalvisualbasic.net. Todos los derechos reservados