Visual Basic - ayuda con maximizar formulario

Life is soft - evento anual de software empresarial
 
Vista:

ayuda con maximizar formulario

Publicado por rodolfo (3 intervenciones) el 25/05/2007 20:06:34
Mi pregunta es la siguiente, hice una especie de aplicación que consiste en un recordatorio de eventos, le programo la hora y la fecha en la que quiero que se active la alarma y sale un formulario con los detalles del evento programado. Lo que pasa es que si yo minimizo el programa y le puse la opcion frm_alerta.windowstate = 2, me lo maximiza. Hasta ahi esta bien, pero si yo por ejemplo estoy en word o excel haciendo algun trabajo, el formulario emerje, pero queda detrasde estos programs y por ende no med oy cuenta de la alerta. Como puedo hacer para que ste formulario salga por encima de cualquier programa en el que este trabajando, muchas 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:ayuda con maximizar formulario

Publicado por Matias (80 intervenciones) el 25/05/2007 20:16:22
LO que podes hacer es poner el formulario encima de todos los programas.

Private 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
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOZORDER = &H4
Const SWP_NOREDRAW = &H8
Const SWP_NOACTIVATE = &H10
Const SWP_FRAMECHANGED = &H20
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Const SWP_NOCOPYBITS = &H100
Const SWP_NOOWNERZORDER = &H200
Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
Const HWND_TOP = 0
Const HWND_BOTTOM = 1
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2

Para Poner encima de todo.
i = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)

Para sacarlo de encima de todo.
i = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
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:ayuda con maximizar formulario

Publicado por rodolfo (3 intervenciones) el 25/05/2007 20:21:43
amigo muchas gracias, lo voy a probar
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:ayuda con maximizar formulario

Publicado por rodolfo (3 intervenciones) el 25/05/2007 20:55:44
Matias, no me sale el asunto, me podrias indicar como debo ejecutar esta funcion en mi aplicación, veo un monton de valores al principio y me confunde, 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

RE:ayuda con maximizar formulario

Publicado por Matias (1 intervención) el 26/05/2007 16:23:51
'Abri un proyecto en blanco y agrega un Boton, con el Nombre Command1 y copia esto asi como esta en el fomulario:

Private 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
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOZORDER = &H4
Const SWP_NOREDRAW = &H8
Const SWP_NOACTIVATE = &H10
Const SWP_FRAMECHANGED = &H20
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Const SWP_NOCOPYBITS = &H100
Const SWP_NOOWNERZORDER = &H200
Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
Const HWND_TOP = 0
Const HWND_BOTTOM = 1
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2



Private Sub Command1_Click()
'Para sacarlo de encima de todo.
i = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
End Sub

Private Sub Form_Load()
'Para Poner encima de todo.
i = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)

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