vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
programm nicht mehr im vordergrund 
Autor: disconnect
Datum: 21.02.08 19:09

hi leute, ich hab mir von dieser seite einen tipp angesehen, den auch dann verwendet. es geht darum, ein fester immer im vordergrund zu halten. der tipp funktioniert auch wunderbar, allerdings weiß ich nicht, wie ich das wieder "deaktivieren" kann.

hier mal der code, den ich im modul habe:

Option Explicit
 
' alle benötigten API-Deklarationen
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
 
Private Declare Function GetWindowLong Lib "user32" _
  Alias "GetWindowLongA" (ByVal hwnd As Long, _
  ByVal nIndex As Long) As Long
 
Private Declare Function SetWindowLong Lib "user32" _
  Alias "SetWindowLongA" (ByVal hwnd As Long, _
  ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
 
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_REFRESH = SWP_NOZORDER Or _
  SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOACTIVATE Or _
  SWP_FRAMECHANGED
 
Private Const GWL_STYLE = (-16)
 
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
 
Private Const HWND_TOPMOST = -1
 
' Minimieren/Maximieren Button einer Form anzeigen
Public Sub MinMaxButton(Form As Form)
  Dim Style As Long
 
  With Form
    Style = GetWindowLong(.hwnd, GWL_STYLE)
    Style = Style Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    SetWindowLong .hwnd, GWL_STYLE, Style
    SetWindowPos .hwnd, 0, 0, 0, 0, 0, SWP_REFRESH
  End With
End Sub
 
' Fenster immer im Vordergrund
Public Sub TopWindow(hwnd As Long)
  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
    SWP_NOSIZE + SWP_NOMOVE
End Sub
wie kann ich jetzt das im vordergrund wieder deaktivieren? im moment rufe ich es so auf:

Private Sub form_load()
Befzurueck.default = True
If mainform.Check2.Enabled = True Then
  ' Fenster immer im Vordergrund anzeigen
  TopWindow Me.hwnd
End If
End Sub
ich glaube ihr seht auch schon mein zweites problem, das sub wird nur ausgeführt wenn das form geladen wird, was bei mir auch beim programmstart passiert. wie kann ich jetzt das steuern, dass er jedesmal wenn das fenster neu geöffnet wird überprüft wird, ob der benutzer das form noch im vordergrund habne möchte oder nicht.
meine idee: ich habe einen timer laufen, der jede sekunde eine uhrenanzeige aktualisiert, ich könnte das jedesmal mit dem überprüfen lassen, allerdings glaube ich dass es schöner auch zum lösen geht.

ich hoffe ihr könnt mir helfen.

mfg disconnect

Gehe immer vom Guten Willen Anderer aus!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
programm nicht mehr im vordergrund553disconnect21.02.08 19:09
Re: programm nicht mehr im vordergrund430Zardoz21.02.08 21:50
Re: programm nicht mehr im vordergrund378disconnect21.02.08 22:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel