Gå til innhold

Anbefalte innlegg

Hei, alle dere smarte programmerere... :thumbup:

 

 

Lurte på om det er noen som vet om man kan finne ut om feks. Form1 er aktiv eller ikke(om den ligger øverst av alle vinduene man har oppe). Jeg mener ikke at den alltid skal være forran alle andre vinduer, men at jeg feks skal få opp en msgbx når formen blir aktiv/inaktiv... Hvis dere skjønner hva jeg mener...

 

 

Forklarte jeg det dårlig... Bare si ifra så skal jeg prøve å forklare bedre...

Lenke til kommentar
Videoannonse
Annonse

Hvis jeg har fortsått deg rett vil du ha en kode som forteller brukeren når formen blir aktiv/inaktiv. Dette kan f.eks gjøres slik:

 

Legg inn en Timer i formen som du kaller for Timer1.

Sett Interval i timeren til 1.

Legg til denne koden i formen:

 

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Dim Stat&

Private Sub Timer1_Timer()

If Stat = 0 Then

If GetForegroundWindow <> Me.hWnd Then
MsgBox "Lost focus!"
Stat = 1
End If

Else

If GetForegroundWindow = Me.hWnd Then
MsgBox "Got focus!"
Stat = 0
End If

End If

End Sub

Lenke til kommentar
  • 3 måneder senere...

En annen metode som nok er mindre ressurskrevende og mer sikker er å subclasse sitt eget vindu og se etter wm_activate eller wm_deactivate. Denne måten er endel vanskeligere å gjennomføre og krever litt kunnskap om windows api. Fins endel eksempler på nettet for å gjøre dette. Planet-source-code.com har sikkert et par.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...