elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Saber cuando se pone en primer plano un formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saber cuando se pone en primer plano un formulario  (Leído 3,346 veces)
icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Saber cuando se pone en primer plano un formulario
« en: 21 Agosto 2007, 11:06 am »

Necesito saber cuando ponen mi formulario en primer plano.

Si cargan mi programa y luego van a la barra de tareas y maximizan otra ventana, quiero saber cuando vuelven a pulsar sobre mi formulario de nuevo, cuando vuelven a activar mi ventana.

He probado con gotfocus y activate, pero esos eventos no se producen. Conoceis el evento?

Un saludo!


En línea

Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Saber cuando se pone en primer plano un formulario
« Respuesta #1 en: 21 Agosto 2007, 11:44 am »

Yo he probado los eventos y ninguno hace lo que quieres, lo que se me ocurre es con un timer llamar a la api "GetForegroundWindow" que te da el handle de la ventana activa y lo comparas con el de tu ventana "Me.hWnd" si coincide esta activa.


En línea

icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Re: Saber cuando se pone en primer plano un formulario
« Respuesta #2 en: 21 Agosto 2007, 11:51 am »

El evento activate sólo detecta los cambios de ventana dentro de la misma aplicación, para vb 2005 ya está solucionado y detecta tambien los cambios entre diferentes aplicaciones.

Tendré que plantearme usar un timer para poder detectar eso.

Gracias KiZaR

Un Saludo
En línea

Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Saber cuando se pone en primer plano un formulario
« Respuesta #3 en: 21 Agosto 2007, 12:06 pm »

La propiedad "Resize" te vale para cuando maximizan y minimizan tu ventana, pero si esta visible y pulsas en la barra de tareas no hace nada....
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Saber cuando se pone en primer plano un formulario
« Respuesta #4 en: 21 Agosto 2007, 14:31 pm »

hola puedes hacer un gancho con hook

en un modulo:
Código:
Const WM_ACTIVATEAPP = &H1C

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)
Dim PrevProc As Long
Public Sub HookForm(F As Form)
    PrevProc = SetWindowLong(F.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnHookForm(F As Form)
    SetWindowLong F.hwnd, GWL_WNDPROC, PrevProc
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(PrevProc, hwnd, uMsg, wParam, lParam)
 

    If uMsg = WM_ACTIVATEAPP Then
        If wParam Then
            Debug.Print "Activate"
        Else
            Debug.Print "Deactivate"
        End If
    End If
End Function


y en el formulario:

Código:
Private Sub Form_Load()
    HookForm Me
End Sub

Private Sub Form_Unload(Cancel As Integer)
    UnHookForm Me
End Sub
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Saber si un Formulario esta cargado
.NET (C#, VB.NET, ASP)
TheGhost(Z) 2 8,614 Último mensaje 18 Enero 2011, 21:06 pm
por TheGhost(Z)
Como saber si un formulario se ha enviado « 1 2 3 »
PHP
Shell Root 25 20,390 Último mensaje 19 Marzo 2011, 19:32 pm
por Spider-Net
Un nuevo centro de investigación pone a prueba el primer ordenador cuántico
Noticias
wolfbcn 3 3,416 Último mensaje 18 Enero 2012, 01:33 am
por beholdthe
Un patinazo en Twitter pone en aprietos al ex primer ministro libanés Saad Harir
Noticias
wolfbcn 0 1,232 Último mensaje 15 Enero 2012, 02:00 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines