Menú

Mostrar Mensajes

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ú

Mensajes - Psyke1

#451
Prueba con esto:
Código (vb) [Seleccionar]
Option Explicit

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const GWL_STYLE As Long = (-16)
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_THICKFRAME  As Long = &H40000

Private Sub Form_Load()
    ' Vivan las ranas! :D
    SetWindowLong Me.hwnd, _
                  GWL_STYLE, _
                  GetWindowLong(Me.hwnd, GWL_STYLE) _
                  And Not WS_CAPTION And Not WS_THICKFRAME
End Sub


DoEvents! :P
#452
Que buena pinta Lenadro! :rolleyes:
De esto es de lo que me hablabas hace días por el msn! ;D
Más tarde lo miro y posteo :D

DoEvents! :P
#453
Eso pensé yo Black! ;)
Con una clase te ahorras ingresar el hWnd varias veces, pero yo solo lo veo rentable si hay varias funciones que lo van a utilizar. :rolleyes:
Si no haría algo parecido a como haces agus0 :
Código (vb) [Seleccionar]
Public Function Funcion(ByVal lHandle As Long) as Long

Así evitamos esto :
Código (vb) [Seleccionar]

Dim C as Integer 'As Long   
    C = fFrm.hWnd


Y lo llamaríamos así :
Código (vb) [Seleccionar]

Debug.Print Funcion(Me.hWnd)


DoEvents! :P
#454
Tengo un nuevo problema :
Segun el manual http://goo.gl/dh6bt
Al crear una partida para jugar online, como se explica en el ultimo punto da error a mis amigos
Osea, sigo los pasos, les doy la ip que saco de la consola y el puerto 27015...
Se les queda cargando sin avanzar y les da error y dice que es imposible conectar.... -.-
Alguien sabe lo que me pasa? :huh:

DoEvents! :P
#455
.
Comprendo, gracias Karcry! :xD

PD: Vaya desastre de respuestas doy a partir de las 3 am :laugh:; a partir de esa hora leo solo la última linea.... :silbar: :laugh:

DoEvents! :P
#456
.
Una pregunta : para que el CallNextHookEx en MouseProc ? :huh:

DoEvents! :P
#457
Cita de: Cromatico en  7 Diciembre 2010, 02:54 AM
Hola Mr.Frog gracias por responder, pero como dije, la imagen es de un form externo a mi proyecto!! Gracias!

Si es posible que me diga en que posicion, left, right, top, bottom de la imagen se hizo click, pero la cagada es que el control image con el que estoy tratando no esta en mi proyecto, sino en uno externo al mio.
Perdoname, no lei bien la pregunta... :P
Con un Hook se puede hacer, mi amigo Dessa estara orgulloso de mi... :xD
Para ello debes sacar el Hwnd del control externo y lo metes en la variable lHwnd, te dejo un ejemplo:
Código (vb) [Seleccionar]

Option Explicit

Private Declare Function SetWindowsHookEx Lib "user32.dll" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hMod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As Long) As Long

Private Const WH_MOUSE_LL                           As Long = 14&

Private Const WM_LBUTTONDOWN                        As Long = &H201

Public lHwnd                                        As Long
Dim hMouseHook                                      As Long


Public Sub StartMouseHook()
    If hMouseHook = 0 Then
        hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, AddressOf MouseProc, App.hInstance, 0&)
    End If
End Sub

Public Sub StopMouseHook()
    If hMouseHook <> 0 Then
        Call UnhookWindowsHookEx(hMouseHook)
        hMouseHook = 0
    End If
End Sub

Private Function MouseProc(ByVal nCode As Long, ByVal wParam As Long, lParam As POINTAPI) As Long
    If wParam = WM_LBUTTONDOWN And (lHwnd = WindowFromPoint(lParam.X, lParam.Y)) Then
        Debug.Print lParam.X; " <--> "; lParam.Y
    End If
End Function


DoEvents! :P
#459
Código (vb) [Seleccionar]
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    MsgBox "x -> " & X & "  ; y -> " & Y
End Sub


DoEvents! :P