ayuda, como hacer que un formulario este sobre todo?
Por favor necesito ayuda con un programita (de un solo formulario) que hice, lo unico que me falta es lograr que este formulario este sobre todo, sin importar que otras aplicaciones se habran el este sobre ellas, sobre todo las aplicaciones del tipo simbolo de sistema.
por favor agradecere cualquier ayuda que puedan darme.
por favor agradecere cualquier ayuda que puedan darme.
Contesto a tu duda sobre como poner un formulario encima de todos :
\'Pega lo de a continuaci贸n en un m贸dulo
#If Win16 Then
\'Para 16-Bit-Windows
Declare Function SetWindowPos Lib "user" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Long, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
#ElseIf Win32 Then
\'Para 32-Bit-Windows
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
#End If
Public Sub WindowOnTop(frm As Form)
\'Ventana permanente en trasfondo
X% = frm.Left
Y% = frm.Top
w% = frm.Width
h% = frm.Height
TwipsToPixel X%, Y%
TwipsToPixel w%, h%
SetWindowPos frm.hwnd, -1, X%, Y%, w%, h%, &H50
End Sub
Public Sub WindowNotOnTop(frm As Form)
\'Liberar ventana en trasfondo
X% = frm.Left
Y% = frm.Top
w% = frm.Width
h% = frm.Height
TwipsToPixel X%, Y%
TwipsToPixel w%, h%
SetWindowPos frm.hwnd, -2, X%, Y%, w%, h%, &H50
End Sub
Public Sub TwipsToPixel(xWert%, yWert%)
ux% = Screen.TwipsPerPixelX
xWert% = xWert% / ux%
uy% = Screen.TwipsPerPixelY
yWert% = yWert% / uy%
End Sub
\'Y en el evento Form_Load del formulario que desees posicionar encima de todo, simplemente, esto :
WindowOnTop Me
\'Si quieres desactivar esta funci贸n, bastar谩 con poner :
WindowNotOnTop Me
\'CONSEJO : AL LLAMAR A LA FUNCI脫N WindowOnTop Me en el evento Form_Load, el formulario en cuestion aparecer谩 encima de todo pero como gris谩ceo, como si no tuviera el foco. Para evitar esto, simplemente, debajo de WindowOnTop Me escribe :
Me.Show
\'Otra cosa : la funci贸n WindowOnTop Me debe ir siempre la primera (en lo m谩s alto de todo) del evento Form_Load, para que funcione.
Espero que esto te sirva de ayuda.
\'Pega lo de a continuaci贸n en un m贸dulo
#If Win16 Then
\'Para 16-Bit-Windows
Declare Function SetWindowPos Lib "user" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Long, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
#ElseIf Win32 Then
\'Para 32-Bit-Windows
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
#End If
Public Sub WindowOnTop(frm As Form)
\'Ventana permanente en trasfondo
X% = frm.Left
Y% = frm.Top
w% = frm.Width
h% = frm.Height
TwipsToPixel X%, Y%
TwipsToPixel w%, h%
SetWindowPos frm.hwnd, -1, X%, Y%, w%, h%, &H50
End Sub
Public Sub WindowNotOnTop(frm As Form)
\'Liberar ventana en trasfondo
X% = frm.Left
Y% = frm.Top
w% = frm.Width
h% = frm.Height
TwipsToPixel X%, Y%
TwipsToPixel w%, h%
SetWindowPos frm.hwnd, -2, X%, Y%, w%, h%, &H50
End Sub
Public Sub TwipsToPixel(xWert%, yWert%)
ux% = Screen.TwipsPerPixelX
xWert% = xWert% / ux%
uy% = Screen.TwipsPerPixelY
yWert% = yWert% / uy%
End Sub
\'Y en el evento Form_Load del formulario que desees posicionar encima de todo, simplemente, esto :
WindowOnTop Me
\'Si quieres desactivar esta funci贸n, bastar谩 con poner :
WindowNotOnTop Me
\'CONSEJO : AL LLAMAR A LA FUNCI脫N WindowOnTop Me en el evento Form_Load, el formulario en cuestion aparecer谩 encima de todo pero como gris谩ceo, como si no tuviera el foco. Para evitar esto, simplemente, debajo de WindowOnTop Me escribe :
Me.Show
\'Otra cosa : la funci贸n WindowOnTop Me debe ir siempre la primera (en lo m谩s alto de todo) del evento Form_Load, para que funcione.
Espero que esto te sirva de ayuda.
