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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
07/02/2005 - 14:11 | Informe spam
efectivamente es utilizando la API.



¿? ¿Y la propiedad TopMost?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Nadie puede amasar una fortuna sin hacer harina a los demás.
Manolito
Respuesta Responder a este mensaje
#3 Jorge Serrano [MVP VB]
07/02/2005 - 15:51 | Informe spam
Hola Eduardo,

pues sí, justamente es para eso. O:-)

Esto me pasa por trabajar con VB6 y VB.NET, a veces dudo sobre las cosas y
muchas veces meto la pata.
Había buscado antes de contestar, en .NET porque me sonaba que había una
propiedad para hacer esto, pero al no verla, me he decantado por la API.

Mejor con TopMost. :-)

Gracias por la aclaración. Tienes toda la razón.

Un saludo,

Jorge Serrano Pérez
MVP VB.NET



"Eduardo A. Morcillo [MS MVP VB]" wrote:

> efectivamente es utilizando la API.

¿? ¿Y la propiedad TopMost?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Nadie puede amasar una fortuna sin hacer harina a los demás.
Manolito



Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP VB]
07/02/2005 - 16:13 | Informe spam
Había buscado antes de contestar, en .NET porque me sonaba que había
una propiedad para hacer esto, pero al no verla, me he decantado por
la API.



Suele pasar, con tanta cosa que tiene el framework a veces no se encuentra
lo que esta frente nuestro.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Nadie puede amasar una fortuna sin hacer harina a los demás.
Manolito
Respuesta Responder a este mensaje
#5 Jose2500
08/02/2005 - 19:45 | Informe spam
Muchas gracias Jorge

"Jorge Serrano [MVP VB]" wrote:

Hola Eduardo,

pues sí, justamente es para eso. O:-)

Esto me pasa por trabajar con VB6 y VB.NET, a veces dudo sobre las cosas y
muchas veces meto la pata.
Había buscado antes de contestar, en .NET porque me sonaba que había una
propiedad para hacer esto, pero al no verla, me he decantado por la API.

Mejor con TopMost. :-)

Gracias por la aclaración. Tienes toda la razón.

Un saludo,

Jorge Serrano Pérez
MVP VB.NET



"Eduardo A. Morcillo [MS MVP VB]" wrote:

> > efectivamente es utilizando la API.
>
> ¿? ¿Y la propiedad TopMost?
>
> Eduardo A. Morcillo [MS MVP VB]
> http://www.mvps.org/emorcillo
>
> Nadie puede amasar una fortuna sin hacer harina a los demás.
> Manolito
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida