Visual Basic - API SENDMESSAGE

Life is soft - evento anual de software empresarial
 
Vista:

API SENDMESSAGE

Publicado por Gonzalo (7 intervenciones) el 29/12/2000 00:00:00
Hola a todos:

Os envio esta pregunta que me corroe tremendamente.

Si la API SendMessage sirve para detectar acciones del usuario, en que envento habría que colocarla.

La api tiene un parámetro WM_MOVE, que teóricamente detecta que el usuario ha movido la pantalla. Para que se detecte, ¿Donde habría que situarla?.

Gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:API SENDMESSAGE

Publicado por edu (423 intervenciones) el 29/12/2000 00:00:00
En primer lugar el API sendMessage no sirve para detectar eventos como su nombre traducido lo dice es "ENVIAR MENSAGE" WIndows recibe el Mensaje y ahi genera el evento, eso quieres decir que entre "" el sendMessage funciona para invocar eventos no para recibir, de todas maneras cuando tu mueves la ventana windows envia a la ventana un WM_MOVE que no es mas que un valor &H3, para que un programa lo capture haz lo siguiente este codigo lo vi en ALLAPI.NEt y lo adapte y tu exigencia:
en un modulo pon:

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) 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

Public Const GWL_WNDPROC = (-4)
Public Const WM_MOVE = &H3
Dim Procedimiento As Long
Public Sub Enlace(FORMU As Form)

Procedimiento = SetWindowLong(FORMU.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

WindowProc = CallWindowProc(Procedimiento, hwnd, uMsg, wParam, lParam)
If uMsg = WM_MOVE Then
MsgBox "Estamos en Movimiento ..."
End If
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONTINUACION

Publicado por edu (423 intervenciones) el 29/12/2000 00:00:00
y
en el Load del Formulario pon
Enlace Me

Cuando lo ejecutes vas a darte cuenta que cuando mueves el formulario se activo el Msgbox bueno es ahi donde tienes que poner el codigo que quieres que haga el programa cuando se mueva la ventana.

Atte.
Eduardo
Caracas-Vzla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar