Visual Basic - UN FORM ON TOP MOST

Life is soft - evento anual de software empresarial
 
Vista:

UN FORM ON TOP MOST

Publicado por Jose Luis (26 intervenciones) el 06/07/2001 11:14:17
NECESITO PONER UN FORM ARRIBA DE TODAS LAS VENTANAS QUE HAYA EN EL ESCRITORIO. CUANDO CLICKEE CUALQUIER OTRA QUE ESTA PERMANEZCA POR ENSIMA. GRACIAS POR LA AYUDA.
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:UN FORM ON TOP MOST

Publicado por Erik (77 intervenciones) el 06/07/2001 20:06:54
Hola:

Es fácil. Hay que usar un par de funcioncillas de la API. En un módulo escribe el siguiente código:

'Tipo para la función GetWindowRect
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Public Const HWND_TOPMOST = -1 'Para SetWindowPos
Public Const HWND_NOTOPMOST = -2 'Para SetWindowPos

'Para colocar la ventana siempre arriba
Public 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

'Para ver la posición de una ventana
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Public Sub SiempreArriba(hWndForm As Long)
'Hace que una ventana se coloque siempre arriba _
El argumento hWndForm es para pasar al procedimiento el handle (hWnd) de la ventana que deseamos colocar siempre arriba

Dim wRect As RECT

GetWindowRect hWndForm, wRect

With wRect
SetWindowPos hWndForm, HWND_TOPMOST, .Left, .Top, .Right - .Left, .Bottom - .Top, 0
End With
End Sub

Para hacer la llamada al procedimiento, sencillamente hay que pasarle el handle del formulario, que está en la propiedad hWnd. Por ejemplo, en el procedimiento de evento Load del formulario:

Private Sub Form_Load()
'Colocamos a ventana siempre arriba
SiempreArriba Me.hWnd
End sub

Un saludo
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