Tipp 0021 Fenster immer sichtbar
Autor/Einsender:
Datum:
  Detlev Schubert
12.04.2001
Entwicklungsumgebung:   VB 5
Beispielsweise für eine elektronische Stechuhr ist es sinnvoll, dass das Fenster sich immer im Vordergrund befindet. Um dies so zu gestalten, greifen wir zur API-Funktion SetWindowPos.
Die API-Funktion dient normalerweise dazu, die Größe oder die Position eines Fensters zu ändern. Mit dem zweiten Parameter hWndInsert kann jedoch Wert übergeben werden, der dafür sorgt, dass ein Fenster immer im Vordergrund ist. Die Funktion wird mit dem Handle der Form aufgerufen, und wird im zweiten Parameter -1 übergeben, dann befindet sich die Form immer im Vordergrund, bei Übergabe von -2 wird wieder der normale Zustand hergestellt.
Code im Codebereich des Moduls
 
Option Explicit

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 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
 
Code im Codebereich der Form
 
Private Sub optNonTopmost_Click()
  SetWindowPos frmontop.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
End Sub

Private Sub optTopmost_Click()
  SetWindowPos frmontop.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
End Sub
 
Weitere Links zum Thema
Fenster animiert anzeigen
Transparente Fenster
Transparente Fenster (ab Windows 2000)

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (2,1 kB) Downloads bisher: [ 2267 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 28. August 2011