Visual Basic - Mostrar ventana por encima de las demas.

Life is soft - evento anual de software empresarial
 
Vista:

Mostrar ventana por encima de las demas.

Publicado por Javier (5 intervenciones) el 16/01/2007 00:44:05
Saludos amigos.
Cual es el código para que al ejecutar el programa me quede la ventana de ese programa por encima de las demás que en ese momento se esten ejecutando y las que se ejecutaran. Sin quitarle el focus a la que este activa.
Por favor. espero me entiendan y si no me lo dicen para ver como me explico mejor.
Gracias
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:Mostrar ventana por encima de las demas.

Publicado por Pere (150 intervenciones) el 16/01/2007 09:12:30
Buenos días Javier.
En el formulario que te interesa, que puede ser el principal, coloca un Timer (en el ejemplo Timer1)

Private Sub Form_Load()
Espera
End Sub

Private Sub Form_Click()
Me.Visible = False
End Sub

Public Function Espera()
Dim lR
Me.Visible = True
Timer1.Enabled = True
Timer1.Interval = 1300
lR = SetTopMostWindow(me.hWnd, True)
End Function

Private Sub Timer1_Timer()
Timer1.Enabled = False
lR = SetTopMostWindow(me.hWnd, False)
Me.Visible = False
End Sub

En un módulo .bas coloca esto:

Public Const SWP_NOMOVE = 2
Public Const SWP_NOSIZE = 1
Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2 '
Declare Function SetWindowPos Lib "user32" _
(ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Public Function SetTopMostWindow(hWnd As Long, Topmost As Boolean) As Long
If Topmost = True Then 'Make the window topmost
SetTopMostWindow = SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
SetTopMostWindow = SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
SetTopMostWindow = False
End If
End Function

De esta manera siempre tendrás ese formulario en primer plano, si haces "click" sobre él, desaparecerá (evento Form_Click )

Así es cómo lo tengo y me funciona.
Espero haberte ayudado.
Un saludo
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

RE:Mostrar ventana por encima de las demas.

Publicado por Javier (5 intervenciones) el 16/01/2007 20:32:46
Hola Pere. Muchas gracias por tu ayuda. Voy a hacerlo y te cuento.
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

RE:Mostrar ventana por encima de las demas.

Publicado por Javier (5 intervenciones) el 19/01/2007 00:30:08
Apreciado Pere. Meti el codigo que me pasastes en el timer1. Al ejecutarle me sale un error de que le nombre timer1.timer es un nombre ambiguo. He revisado el nombre y todos concuerdan. Osea el unico timer que hay se llama así, timer1.
Gracias Pere y disculpa la molestias
Que podria estar causando el error
de nuevo gracias.
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