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 = &H1
Public Const SWP_NOMOVE = &H2
Public Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2

Die Funktion SetWindowPos wird dann "Beim Öffnen" - Event aufgerufen:

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