Avatar billede srhansen Nybegynder
08. februar 2002 - 12:16 Der er 6 kommentarer og
2 løsninger

Form Ontop, hvordan

Der er 30 spir til den der kan fortælle mig hvordan man får en form til at forblive øverst (Ontop) ligesom det kendes fra C++
Avatar billede kennethrisum Nybegynder
08. februar 2002 - 12:31 #1
Dette kode sætter en form øverst:

Declare Function SetWindowPos Lib "user32" (ByVal h&, ByVal hb&, ByVal X&, ByVal Y&, ByVal cx&, ByVal cy&, ByVal f&) As Long
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Public Const flags = SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const HWND_BOTTOM = 1
Public Const HWND_TOP = 0

Public sub SetOnTop()
  Call SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags)
End Sub
Avatar billede srhansen Nybegynder
08. februar 2002 - 12:44 #2
Nøjagtigt, hvad jeg behøvede tusind tak.
Hmm... det ser ikke ud til at jeg har mulighed for at give dig dine velfortjente point lige nu. Af en eller anden grund er pointtildelingen ikke tilsyne lige nu. Prøver lige at opdatere billedet.
Avatar billede srhansen Nybegynder
08. februar 2002 - 22:03 #3
Æv virker ikke "konstanter med fast længde er ikke tiladt i public...."

Help
Avatar billede sjh Nybegynder
09. februar 2002 - 15:46 #4
'----------------------------- Øverst i Form1 eller Module1 -----------------------------
Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                ByVal hWnd As Long, ByVal wMsg As Long, _
                ByVal wParam As Long, lParam As Any) As Long

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

Public Function AlwaysOnTop(frm As Form, Optional TopMost As Boolean = True)
  AlwaysOnTop = SetWindowPos(frm.hWnd, IIf(TopMost, -&H1, -&H2), 0, 0, 0, 0, &H2 Or &H1)
End Function
'----------------------------- Øverst i Form1 eller Module1 -----------------------------

'AlwaysOnTop Me, True '(altid øverst)
'AlwaysOnTop Me, False '(nomal)

'---------------------------------------- Form1 -----------------------------------------
Private Sub Check1_Click() 'CheckBox
  AlwaysOnTop Me, CBool(Check1.Value)
End Sub
'---------------------------------------- Form1 -----------------------------------------
Avatar billede sjh Nybegynder
10. februar 2002 - 00:22 #5
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                ByVal hWnd As Long, ByVal wMsg As Long, _
                ByVal wParam As Long, lParam As Any) As Long

Fejl "SendMessage" skal ikke bruges. :-)
Avatar billede kennethrisum Nybegynder
11. februar 2002 - 09:09 #6
Prøv at ændre alle declarations i min kode til Private i stedet for public. Public constanst bliver ikke tilladt i forms.

mvh/Kenneth
Avatar billede srhansen Nybegynder
22. maj 2002 - 15:04 #7
Jeg fik desværre ingen af løsningerne til at virke, men jeg fandt noget kode på planetsourcekode, der var en variant af kenneths kode: http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=73&lngWId=1

Jeg håber det er iorden at i deler points, jeg ved jo ikke om sjh's kode virker.

Tak for hjælpen og undskyld den lange svartid.
Avatar billede sjh Nybegynder
23. maj 2002 - 14:11 #8
selv tak.
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