FORM NO TOPO
Olá,
Tenho um form que é acionado qdo chega uma determinada hora. Estou tentando coloca-lo por cima das outras aplicaçoes que o usuario estiver usando, mas não estou conseguindo. Achei o codigo abaixo na net. No modulo coloco:
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
Public Const SWP_NOMOVE = 2
Public Const SWP_NOSIZE = 1
Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
No Form_Load do form que quero mostrar na frente de todos eu coloco:
SetWindowPos frmaviso.hwnd, -2, 0, 0, 0, 0, FLAGS
Mas não funciona. O form aparece por tras da aplicação que está aberta. Alguem sabe como fazer para colocar o form na frente da aplicação que estiver aberta? Obrigado.
Luiz
Tenho um form que é acionado qdo chega uma determinada hora. Estou tentando coloca-lo por cima das outras aplicaçoes que o usuario estiver usando, mas não estou conseguindo. Achei o codigo abaixo na net. No modulo coloco:
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
Public Const SWP_NOMOVE = 2
Public Const SWP_NOSIZE = 1
Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
No Form_Load do form que quero mostrar na frente de todos eu coloco:
SetWindowPos frmaviso.hwnd, -2, 0, 0, 0, 0, FLAGS
Mas não funciona. O form aparece por tras da aplicação que está aberta. Alguem sabe como fazer para colocar o form na frente da aplicação que estiver aberta? Obrigado.
Luiz
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
Private Const SWP_FLAGS = 3
Private Const SWP_HWND_TOPMOST = -1
Private Const SWP_HWND_NOTOPMOST = -2
Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean)
Dim lFlag As Long
If SetOnTop Then
lFlag = SWP_HWND_TOPMOST
Else
lFlag = SWP_HWND_NOTOPMOST
End If
SetWindowPos myfrm.hwnd, lFlag, myfrm.Left / Screen.TwipsPerPixelX, myfrm.Top / Screen.TwipsPerPixelY, myfrm.Width / Screen.TwipsPerPixelX, myfrm.Height / Screen.TwipsPerPixelY, SWP_FLAGS
End SubLAGS
End SubTem essa função que encontrei aqui no VBMania que funciona perfeitamente comigo.
Para chamá-la faça assim no evento Load, por exemplo:
AlwaysOnTop frmaviso, True
Ahh tente esse codigo entaum..........ele ira ficar na frente de outras aplicaçoes no form_load....mas c vc quiser e soh tirar a linha d codigo do form_load e mudar para outro evento
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
Private Const SWP_FLAGS = 3
Private Const SWP_HWND_TOPMOST = -1
Private Const SWP_HWND_NOTOPMOST = -2
Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean)
Dim lFlag As Long
If SetOnTop Then
lFlag = SWP_HWND_TOPMOST
Else
lFlag = SWP_HWND_NOTOPMOST
End If
SetWindowPos myfrm.hwnd, lFlag, myfrm.Left / Screen.TwipsPerPixelX, myfrm.Top / Screen.TwipsPerPixelY, myfrm.Width / Screen.TwipsPerPixelX, myfrm.Height / Screen.TwipsPerPixelY, SWP_FLAGS
End Sub
Private Sub Form_Load()
AlwaysOnTop Form1, True
End Sub
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
Private Const SWP_FLAGS = 3
Private Const SWP_HWND_TOPMOST = -1
Private Const SWP_HWND_NOTOPMOST = -2
Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean)
Dim lFlag As Long
If SetOnTop Then
lFlag = SWP_HWND_TOPMOST
Else
lFlag = SWP_HWND_NOTOPMOST
End If
SetWindowPos myfrm.hwnd, lFlag, myfrm.Left / Screen.TwipsPerPixelX, myfrm.Top / Screen.TwipsPerPixelY, myfrm.Width / Screen.TwipsPerPixelX, myfrm.Height / Screen.TwipsPerPixelY, SWP_FLAGS
End Sub
Private Sub Form_Load()
AlwaysOnTop Form1, True
End Sub
TRUHILLO desculpe naum tinha visto que vc jah tinha postado !!!
Funcionou Truhillo. Valeu.
Luiz
Luiz
Tópico encerrado , respostas não são mais permitidas