VBA Tipp: Formular immer im Vordergrund

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte ein bestimmtes Formular immer im Vordergrund - Always on Top - eingeblendet haben.

Beispiele : Stechuhren, Notizzettel usw.

Lösung

'Benötigte API
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
 
'Konstanten
Public Const SWP_NOSIZE     As Long = &H1
Public Const SWP_NOMOVE     As LOng= &H2
Public Const FLAGS As Long  As Long = SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_TOPMOST   As Long = -1
Public Const HWND_NOTOPMOST As Long = -2

Die Funktion SetWindowPos() wird dann im Beim Öffnen-Ereignis aufgerufen:

Private Sub Form_Open(Cancel As Integer)
   SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
End Sub