Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: SERBice en 21 Junio 2008, 12:30 pm



Título: mostrar ventana, pero no quitar foco de la actual
Publicado por: SERBice en 21 Junio 2008, 12:30 pm
me gustaria saber como lograr mostrar un form qu tengo cargado (Load FormName) pero que esta con la propiedad visible en false (esto lo se hacer), pero sin quitarle el foco a la ventana actual (esto es lo que no se).

se me ocurre que deberia "fijarme" cual es la ventana activa y al mostrar la que yo quiero devolverle el foco con sendmensage o algo asi.... pero no se como hacerlo, si alguien me pudiera dar una mano estaria agradecido.

desde ya, muchas gracias.


Título: Re: mostrar ventana, pero no quitar foco de la actual
Publicado por: SERBice en 21 Junio 2008, 23:43 pm
bueno, buscando un poco he encontrado que con getactivewindow y setactivewindow pudo hacer lo que yo queria, desdeya muchas gracias por haber entrado y tomarte el tiempo de leer esto.

Saludos.


Título: Re: mostrar ventana, pero no quitar foco de la actual
Publicado por: cobein en 22 Junio 2008, 00:06 am
Código:
Option Explicit

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWNOACTIVATE As Long = 4

Private Sub Command1_Click()
    Load Form2
    ShowWindow Form2.hwnd, SW_SHOWNOACTIVATE
End Sub


Título: Re: mostrar ventana, pero no quitar foco de la actual
Publicado por: seba123neo en 22 Junio 2008, 00:30 am
chapuza:

Código:
Private Sub Command1_Click()
Load Form2
Form2.Show
Form2.ZOrder 1
End Sub

 :P


Título: Re: mostrar ventana, pero no quitar foco de la actual
Publicado por: SERBice en 22 Junio 2008, 00:45 am
Código:
Option Explicit

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWNOACTIVATE As Long = 4

Private Sub Command1_Click()
    Load Form2
    ShowWindow Form2.hwnd, SW_SHOWNOACTIVATE
End Sub


Gracias, utilizare ese codigo. Yo lo qu hacia era almacenar el hwnd de la ventana activa, mostrar el form y activar nuevamente la ventana con el hwnd guardado, pero inevitablement perdia el foco un instante. Vere si me funciona tu codigo estando el form visibl=false....

nuevamente gracias.