Visual Basic - Ventana al frente

Life is soft - evento anual de software empresarial
 
Vista:

Ventana al frente

Publicado por Adolfo Huaman (1 intervención) el 08/03/2001 23:54:32
Amigos: Con que API mando mi aplicacion simpre al frente.
He probado con el BringWindowToTop y con el ShowWindow, pero solo me funciona la primera vez, para la segunda y demas veces no me funciona.
Gracias amigos de LWP
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:Ventana al frente

Publicado por Adán (39 intervenciones) el 09/03/2001 04:15:49
Si lo que quieres es que tu aplicación se encuentre al frente de todas las ventanas en Windows (que redundante):

Option Explicit
Private Declare Function SetWindowPos Lib "user32.dll" (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
Const HWND_NOTOPMOST = -2
Const HWND_TOPMOST = -1
Const HWND_BOTTOM = 1
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2

Private Sub Command1_Click()
'Trae al frente de todas las ventanas al form1 aunque cambies de ventana (StayOnTop)
Dim flags As Long
Dim retval As Long

flags = SWP_NOSIZE Or SWP_NOMOVE

retval = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 1, 1, flags)
End Sub

Private Sub Command2_Click()
'Si cambias de ventana ya no estará al frente el form1
Dim flags As Long
Dim retval As Long

flags = SWP_NOSIZE Or SWP_NOMOVE

retval = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 1, 1, flags)
End Sub

Private Sub Command3_Click()
'Manda al fondo tu ventana (form1) y se pierde el 'StayOnTop'
Dim flags As Long
Dim retval As Long

flags = SWP_NOSIZE Or SWP_NOMOVE

retval = SetWindowPos(Form1.hwnd, HWND_BOTTOM, 0, 0, 1, 1, flags)
End Sub

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