Avatar billede Slettet bruger
26. februar 2001 - 10:09 Der er 8 kommentarer og
1 løsning

Always on top

Hvordan går jeg, så mit program som jeg har lavet i VB altid er øverst, så som min WinAmp eller f.eks icq
Avatar billede snowball Novice
26. februar 2001 - 10:26 #1
\'===================================================
\'Sub: StayOnTop
\'Description: Keeps a form on top
\'Where to place code: Module, place \"StayOnTop Me\" in the form\'s Resize event
\'Notes: Set frm to the form to keep on top
\'      To use, put \"StayOnTop Me\" in the form\'s Resize event
\'
\'http://www.littleguru.com
\'==================================================

Public 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)

Const HWND_TOPMOST = -1
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2

Public Sub StayOnTop(frm As Form)
  SetWindowPos frm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub


Snowball
Avatar billede snowball Novice
26. februar 2001 - 10:28 #2
Et forslag mere:

\'add to a module form
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 Sub StayOnTop(frmForm As Form, fOnTop As Boolean)
 
  Const HWND_TOPMOST = -1
  Const HWND_NOTOPMOST = -2
 
  Dim lState As Long
  Dim iLeft As Integer, iTop As Integer, iWidth As Integer, iHeight As Integer
   
  With frmForm
    iLeft = .Left / Screen.TwipsPerPixelX
    iTop = .Top / Screen.TwipsPerPixelY
    iWidth = .Width / Screen.TwipsPerPixelX
    iHeight = .Height / Screen.TwipsPerPixelY
  End With
 
  If fOnTop Then
    lState = HWND_TOPMOST
  Else
    lState = HWND_NOTOPMOST
  End If
  Call SetWindowPos(frmForm.hWnd, lState, iLeft, iTop, iWidth, iHeight,0)

End Sub


Snowball
Avatar billede Slettet bruger
26. februar 2001 - 10:36 #3
??? oki, kan i ikke sende en som er lavet til mig på denne adresse:
netrider@worldonline.dk

jeg er ikke helt sikker på hvordan jeg laver det her..
Avatar billede snowball Novice
26. februar 2001 - 10:42 #4
Nej, det kan jeg ikke da jeg ikke programmerer i VB !

Snowball

Avatar billede Slettet bruger
26. februar 2001 - 10:47 #5
hvor har du det så fra?
Avatar billede snowball Novice
26. februar 2001 - 10:54 #6
Tjaaa, man kan finde meget på nettet hvis man bare lige gider og bruge et minutter på det ! ;)

http://ww3.bay.k12.fl.us/ctech/webc/99webcentries/mosley/visualbasics/code/window/stayontop.txt

http://www.kather.net/VisualBasicSource/vb4stayontop.txt

Snowball
Avatar billede cstern Nybegynder
26. februar 2001 - 11:03 #7
testkanin: how hard can it be:

1) lav et nyt projekt. Dobbeltklik på formen (du behøver ikke nogen knapper). Du kommer ind i Form_Load() proceduren. Udskift Load med Resize. Inde i proceduren skriver du

StayOnTop Me

2) Tilføj et modul (i menuen til venstre højreklik på Project og vælg Add..., module. I dette module paster du snowballs første eksempel.

3) Kør programmet.
Avatar billede sjh Nybegynder
26. februar 2001 - 23:33 #8
\'------------------------------ Form1 ------------------------------
\'- inset en CheckBox(Check1) På din Form1                        -
\'-------------------------------------------------------------------

\'-------------------- Øverst i din Form1 Kode ----------------------
Option Explicit
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
\'-------------------- Øverst i din Form1 Kode ----------------------




\'------------------------------ Form1 ------------------------------
Public Function AlwaysOnTop(Form1, Optional TopMost As Boolean = True)
    Const HWND_TOPMOST = -&H1
    Const HWND_NOTOPMOST = -&H2
    Const SWP_NOSIZE = &H1
    Const SWP_NOMOVE = &H2
    AlwaysOnTop = SetWindowPos(Form1.hwnd, IIf(TopMost, HWND_TOPMOST, _
    HWND_NOTOPMOST), 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End Function

Private Sub Check1_Click()
If Check1.Value = 1 Then AlwaysOnTop Me, True
If Check1.Value = 0 Then AlwaysOnTop Me, False
End Sub
\'------------------------------ Form1 ------------------------------
Avatar billede jalle76 Nybegynder
03. april 2001 - 19:09 #9
Tak til snowball og cstern. Det virker fint.
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

IT-JOB