La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1190 - FORMULARIOS EN PRIMER PLANO
Autor:  Gerardo Librera
NECESITO COLOCAR UN FORMULARIO EN TIEMPO DE EJECUCION, EN PRIMER PLANO SIEMPRE DE TODAS LAS VENTANAS DE WINDOWS

  Respuesta:  HORACIO ACOSTA
PARA COLOCAR UN FORMULARIO FRENTE A OTROS UTILIZA:
Form1.ZOrder
PUEDES RENOVAR ESTA ORDEN CADA QUE DESEES. SI QUIERES EVITAR LA REDUNDANCIA DEBES LLAMAR LA API SetWindowPos. SI NO SABES COMO HACERLO, ESCRIBEME Y TE ENVIARÉ EL CODIGO.

FELICES FESTIVIDADES.

  Respuesta:  Xavi
Aqui te mando el codigo. Si quieres visualizar mas API´s, revisa el apartado de Biblioteca de Temas-Como utilizar API´s en Visual Basic.
´Código para el Modulo
Public Const HWND_BOTTOM = 1 ´Coloca la venta al final de la lista
Public Const HWND_TOP = 0 ´Coloca la ventana al inicio del orden
Public Const HWND_TOPMOST = -1 ´Coloca la ventana al inicio del orden por encima de todo
Public Const HWND_NOTOPMOST = -2 ´Coloca la ventana al inicio del orden detras de las ventanas de nivel superior
Public Const SWP_HIDEWINDOW = &H80 ´Esconde la ventana
Public Const SWP_NOACTIVATE = &H10 ´No activa la ventana
Public Const SWP_NOMOVE = &H2 ´Mantiene la posición Actual
Public Const SWP_NOREDRAW = &H8 ´La ventana No se redibuja automáticamente
Public Const SWP_NOSIZE = &H1 ´Mantiene el tamaño vigente
Public Const SWP_NOZORDER = &H4 ´Mantiene la posición vigente en la lista de ventanas
Public Const SWP_SHOWWINDOW = &H40 ´Presenta en pantalla la ventana

´Para mantenerlo siempre visible, podeis utilizar estas opciones
Public Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE

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

´Código para el evento ´Load´ del Formulario
´Definimos la variable
Dim CadenaResultante As Long

CadenaResultante = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_FLAGS)
´CadenaResultante = Devuelve cero en caso de error.

´NOTA: Para finalizar la posición de siempre visible, cambiar HWND_TOPMOST por HWND_NOTOPMOST