Ventana emergente

06/02/2005 - 20:56 por Jose | Informe spam
Hola

Alguien me puede ayudar en lo siguiente:
Necesito hacer que una ventana aparezca y se
mantenga fija (emergente) de forma que nunca pierda el
enfoque, incluso si activamos otra aplicación.
Es decir, el usuario siempre la tendrá a la vista aunque
cambie de aplicación.
¿Hay algún modo de hacer esto? (supongo que debo echar
mano de alguna API de windows)

gracias
Jose
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
07/02/2005 - 13:35 | Informe spam
Hola Jose,

efectivamente es utilizando la API.

Aquí te pongo un breve ejemplo:

Private Declare Function SetWindowPos _
Lib "user32" (ByVal hwnd As Integer, _
ByVal hWndInsertAfter As Integer, _
ByVal x As Integer, _
ByVal y As Integer, _
ByVal cy As Long, _
ByVal cx As Integer, _
ByVal wFlags As Integer) As Integer


Private Const HWND_TOPMOST As Integer = -1
Private Const HWND_NOTOPMOST As Integer = -2


Para ponerlo en primer plano:

Dim Ancho, Alto As Long
Dim PosTop, PosLeft As Long
Ancho = Me.Width : Alto = Me.Height
PosTop = Me.Top : PosLeft = Me.Left
SetWindowPos(ActiveForm.Handle.ToInt32, HWND_TOPMOST, 0, 0, 0, 0, 3)
Me.Width = Ancho : Me.Height = Alto
Me.Top = PosTop : Me.Left = PosLeft


Para ponerlo en segundo plano (modo por defecto):

Dim Ancho, Alto As Long
Dim PosTop, PosLeft As Long
Ancho = Me.Width : Alto = Me.Height
PosTop = Me.Top : PosLeft = Me.Left
SetWindowPos(ActiveForm.Handle.ToInt32, HWND_NOTOPMOST, 0, 0, 0, 0, 3)
Me.Width = Ancho : Me.Height = Alto
Me.Top = PosTop : Me.Left = PosLeft


Un saludo,

Jorge Serrano Pérez
MVP VB.NET


"Jose" wrote:

Hola

Alguien me puede ayudar en lo siguiente:
Necesito hacer que una ventana aparezca y se
mantenga fija (emergente) de forma que nunca pierda el
enfoque, incluso si activamos otra aplicación.
Es decir, el usuario siempre la tendrá a la vista aunque
cambie de aplicación.
¿Hay algún modo de hacer esto? (supongo que debo echar
mano de alguna API de windows)

gracias
Jose


Preguntas similares