View Full Version : [VB] form sempre in primo piano
salve, mi servirebbe aiuto per un programma che sto realizzando. Sono riuscito a mettere il form in primo piano su qualunque tipo di finestra windows però il progetto era stato progettato per restare "on top" in qualunque circostanza cosa che non accade se apro un gioco a tutto schermo che credo che usi direct3d. Come posso fare per metterlo SEMPRE in primo piano???
Ho trovato questo però trovo un errore vicino a: SetParent(Form1.hwnd, mhwnd)
http://forums.msdn.microsoft.com/pt-BR/vbgeneral/thread/37d31233-eaa2-4472-9eec-aa404853eecd/
mi aiutate?
un aiutino??? è tutto il giorno che ci sto dietro...
Probabilmente nel programma del gioco c'è impostata una funzione che lo fa rimanere sempre in primo piano e mi pare logico, altrimenti il gioco verrebbe nascosto da chissà quante finestre e non avrebbe senso. :D
Non saprei proprio come aiutarti :)
risolto :D Grazie mille
Sarebbe interessante sapere in che modo hai risolto, questo al fine di aiutare altri utenti con lo stesso problema. :D
Ciao ;)
Ho utilizzato delle api. Cioè le api mi mettono il form in primo piano su qualunque tipo di finestra (persino sul task manager :eek: ) però nn sul gioco. Allora per sisolvere ho avviato il gioco in modalità finestra.
in un modulo:
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
Const HWND_TOPMOST = -1
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
nel form questo (credo, nn ricordo bene):
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
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Private Sub Check1_Click()
If Check1.Value = True Then
Timer1.Enabled = True
ElseIf Check1.Value = False Then
res& = SetWindowPos(Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
Timer1.Enabled = False
End If
End Sub
Private Sub Timer1_Timer()
res& = SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
End Sub
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.