Rubrik: Oberfläche · Fenster | VB-Versionen: VB4, VB5, VB6 | 23.06.01 |
Fenster immer im Vordergrund anzeigen Der Tipp zeigt, wie man ein Fenster immer im Vordergrund halten kann, ohne daß es verdeckt wird. | ||
Autor: Dieter Otter | Bewertung: | Views: 51.992 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Möchten Sie ein bestimmtes Fenster immer im Vordergrund halten, so daß dieses nicht von anderen Fenstern verdeckt werden kann? Sinnvoll wäre eine solche Funktion z.B. für einen Online-Gebühren Wächter, der den Anwender fortlaufend über die aufgelaufenen Online-Gebühren informieren soll.
Hier die entsprechende Prozedur
' zunächst die benötigten API-Deklarationen Private Declare Function SetWindowPos Lib "user32" _ Alias "SetWindowPos" ( _ 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 Private Const HWND_TOPMOST = -1 Private Const HWND_NOTOPMOST = -2 Private Const SWP_NOMOVE = &H2 Private Const SWP_NOSIZE = &H1 ' Fenster in den Vordergrund setzen Public Sub FormOnTop(ByVal hWnd As Long, _ ByVal OnTop As Boolean) If OnTop Then ' immer im Vordergrund SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, _ SWP_NOMOVE Or SWP_NOSIZE Else ' normal SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, _ SWP_NOMOVE Or SWP_NOSIZE End If End Sub
Übergeben Sie der Prozedur das Handle des Fensters und setzen für OnTop den Wert True, wenn das Fenster immer im Vordergrund angezeigt werden soll. Um das Fenster wieder normal anzuzeigen, rufen Sie die Prozedur erneut auf und setzen für OnTop den Wert False.