formulario siempre abierto

Mario
08 de Marzo del 2006
llevo poco tiempo con vb6 y me gustaría saber cómo hacer que, estando un formulario en ventana activa, al perderla, la recupere, y así hacer que no se pueda salir de él. os agradecería la respuesta aquí o en [email protected] gracias

Rosa
08 de Marzo del 2006
Hola, lo que necesitas es mostrar el formulario como modal, así:

form1.show vbModal

epa
08 de Marzo del 2006
En un modulo pones:
Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (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

Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1

wFlags = SWP_NOMOVE or SWP_NOSIZE

Luego pon 2 botones, uno con caption "flotante" y otro, "no flotante"
Luego el codigo de "flotante":
Private Sub cmdFlotante_Click()
Flot = SetWindowPos(me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, wFlags)
End Sub
Private Sub cmdFlotante_Click()
Flot = SetWindowPos(me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, wFlags)
End Sub
Private Sub cmdFlotante_Click()
Flot = SetWindowPos(me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, wFlags)
End Sub
Private Sub cmdFlotante_Click()
Flot = SetWindowPos(me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, wFlags)
End Sub

Private Sub cmdNoflotante_Click()
Flot = SetWindowPos(me.hwnd,HWND_NOTOPMOST, 0, 0, 0, 0, wFlags)
End Sub

Con los ceros puedes establecer el la posicion horizontal, posicion vertical, largo y ancho respectivamente

Saludos

epa
08 de Marzo del 2006
Ejeje, sin querer repeti 3 veces el codigo del primer boton, eso sacalo