VB 6.0

  • #1
A

Alexander16

Bekanntes Mitglied
Themenersteller
Dabei seit
26.08.2002
Beiträge
473
Reaktionspunkte
0
So da bin ich wieder mit einer neuen Frage!!! ;D

Wie kann ich ein Formular so einstellen damit es beim Ausführen immer im Vordergrund bleibt?
Also wenn ich das Programmstarte und z.B. danach ein Spiel oder so starte, damit es dann immer noch sichtbar ist.

Vielen Dank an Alle ;D
 
  • #2
AFAIK geht  das nur ueber die API. Also zum testen mach dir ne form auf die du dann ne checkbox ziehst. dann kopierste den folgenden code einfach mal in das code fenster.
wenn checkbox angehakt bleibt das fenster on top, wenn nicht angehakt kansste auch andere in den vordergrundholen.
was du immer brauchst is die API deklaration oben und die konstanten. wenn du das fenster oben haben willst rufst du dann SetWindowPos mit den parametern wie bei If check1.value = vbChecked auf, wenn du es nicht mehr im vordergrund haben willst die parameter wie bei else.

Code:
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
 
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const HWND_ALLWAYSONTOP = -1
Const HWND_NORMAL = -2
 
Private Sub Form_Load()
  Check1.Caption = Fenster obenhalten
  Check1.Value = vbChecked
End Sub
 
 
Private Sub Check1_Click()
  If Check1.Value = vbChecked Then
      SetWindowPos hwnd, _
      HWND_ALLWAYSONTOP, 0, 0, 0, 0, _
      SWP_NOMOVE + SWP_NOSIZE
  Else
      SetWindowPos hwnd, _
      HWND_NORMAL, 0, 0, 0, 0, _
      SWP_NOMOVE + SWP_NOSIZE
  End If
End Sub
 
  • #3
hail,

also das mit dem API stimmt schon, aber so einfach funzt es natürlich nicht.
SetWindowPos() kann natürlich NUR die Z- Order INNERHALB eines Programms ändern....damit kannst du sowas
SYSTEMÜBERGREIFENDES nicht programmieren.
Ich weiss eh nicht, ob es in VB überhaupt zu realisieren ist
das Ganze ist sehr schwierig und wie ich meine, nur in C/C++ oder Assembly zu programmieren

mfg
drulak
 
  • #4
bei mir funzt das aber sysuebergreifend
 
  • #5
hi,

echt ?? du meinst, das Fenster bleibt im Vordergrund, auch wenn du z.B. Word startest ??
d.h. sämtliche OnPaint- Handler aller anderen Programme ignorieren diesen Bildschirmbereich ??
ist ne Überraschung für mich, echt !!

ich hätte das besser überprüft ( *peinlich berührt)
ich hätte nicht gedacht, dass mit so einer Popel- Funktion wie SetWindowPos sowas zu realisieren ist, sorry

mfg
drulak
 
  • #6
tja, da kannste mal sehen =)
 
  • #7
Cool es funktioniert :eek: Danke ;D
 
  • #8
Hallo

Ich habe mein Notebook erst zwei Wochen. Windows 7 Home Premium 64bit
Nun habe ich folgendes ärgerliche Problem.
Wenn ich im Ordner "Eigene Bilder" eine oder mehrere Dateien lösche, gibt es keine Reaktion.
Aktualisieren hilft nicht.

Verlasse ich den Ordner und öffne ihn erneut, dann ist die gelöschte Datei weg. Anfangs dachte ich, dass irgendein Programm z.B. Picasa auf den Ordner ständig zugreift und dass das die Ursache wäre.

Auch wenn ich in die Listenansicht wechsle verschwinden die Dateien nicht unmittelbar - erst beim neuerlichen öffnen es ordners. In allen anderen Ordnern taucht das Problem nicht auf.

Hat jemand eine Idee, was die Ursache ist?

Bitte um Infos

Danke,

sedem
 
Thema:

VB 6.0

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben