Avatar billede stois Nybegynder
19. april 2004 - 15:31 Der er 6 kommentarer og
1 løsning

Always on top

Jeg har dummet mig lidt, fordi jeg har fundet ud af hvordan man ligger noget always on top, men den funktion jeg bruger stjæler samtidigt focus fra andre programmer... ikke sejt...

Her kan i se den funktion jeg bruger...:

'----------- always on top constanter ---------
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Const TOPMOST_FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, y, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

'----------- Denne funktion gør at vinduet altid er øverst
Private Sub MakeTopMost(Handle As Long)
SetWindowPos Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub

Private Sub Form_Load()
'----------- Aktivere altid øverst funktionen permanent
MakeTopMost Me.hwnd

AOT.Interval = 50
AOT.Enabled = True

End Sub

'------ Always On Toptimer------
Private Sub AOT_timer()
MakeTopMost Me.hwnd
End Sub


------------------------------------------------------------
Hjælp mig =)
Avatar billede jpvj Nybegynder
19. april 2004 - 15:36 #1
Hvad er spørgsmålet?

Kan ikke lige finde et "?" i dit indlæg...
Avatar billede sjh Nybegynder
19. april 2004 - 15:38 #2
det er da klart når du køre "MakeTopMost Me.hwnd" under en timer ;)
Avatar billede stois Nybegynder
19. april 2004 - 15:45 #3
Hvad gør man så for at forhindre at focus bliver stjålet???

eller måske en helt trejde måde at skrive det ???
Avatar billede sjh Nybegynder
19. april 2004 - 15:53 #4
prøv den her:


'----------------------------------- Form1 -----------------------------------
Option Explicit

Private Const HWND_TOPMOST  As Long = -1
Private Const HWND_NOTOPMOST As Long = -2
Private Const SWP_NOSIZE    As Long = &H1
Private Const SWP_NOMOVE    As Long = &H2
Private Const SWP_NOACTIVATE As Long = &H10
Private Const SWP_SHOWWINDOW As Long = &H40

Private Declare Sub 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)

Private Sub Form_Activate()
  SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
  SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
'----------------------------------- Form1 -----------------------------------
Avatar billede sjh Nybegynder
19. april 2004 - 16:03 #5
lige en ting.. det virker altså ikke så godt når man køre det fra editoren (vb5,vb6) det virker først når du køre din exe-file
Avatar billede stois Nybegynder
20. april 2004 - 08:37 #6
Mange tak SJH...

Jeg sender dig en e-mail, som du så kan svare på hvis du vil, så jeg kan nævne dig i min kilde specifikation... det er det mindste jeg kan gøre... plus jeg har givet dig højeste til din karma =)

MvH Stois

p.s. Jeg sende mail til din adslhome.dk adresse...
Avatar billede stois Nybegynder
20. april 2004 - 08:42 #7
Nu kommer det svære, nu er det grafiske klaret... nu mangler "KUN" et panel hvor brugeren kan lægge random genveje, og en ny form til indstilning af forskellige options i programmet .... det kan stadigvæk nå at blive sjov... =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester