Wie spricht man in VB6 das X rechts oben im Fenster an

GeCKo1234

Mitglied
Hi,

ich habe eine frage.

Wie kann ich unter VB6 das X recht oben im Fenster anspechen?

also wenn jemand das Fenster mix X schliesen will soll etwas passieren.

danke

mfg
GeCko
 
Wenn das X geklickt wird tritt das Form_Unload(Cancel as integer) - Ereignis auf, da kannst du tun was du tun willst! um ein schließen zu verhindern setzt du Cancel <> 0
 
Leider gilt diese Ereignis dann auch bei dem normalen Unload Me befehl, den ich benutze.

gibt es keine andere Möglichkeit das X anzusprechen oder kompkett abzustellen?

wie z.b.
X.Enable=False
:)

danke für die Hilfe

mfg
GeCko
 
Du kannst in den Frameeigenschaften die Titelleiste komplett rausnehmen.

ein schlampiger Weg, wäre statt
unload.me
einfach nur
me.hide
zu machen :)
 
Du kannst es deakivieren:

Code:
 'APIS
 Private Declare Function GetSystemMenu Lib "user32" (ByVal _
 	  hWnd As Long, ByVal bRevert As Long) As Long
 
 Private Declare Function DeleteMenu Lib "user32" (ByVal _
 	  hMenu As Long, ByVal nPosition As Long, ByVal _
 	  wFlags As Long) As Long
 
 Private Declare Function DrawMenuBar Lib "user32" (ByVal _
 	  hWnd As Long) As Long
 
 Private Const SC_CLOSE = &HF060
 Private Const MF_BYCOMMAND = &H0
 
 
 'Aktiviere X
 	  GetSystemMenu Me.hWnd, True
 'Deaktiviere X 
 	  DeleteMenu GetSystemMenu(Me.hWnd, False), SC_CLOSE, MF_BYCOMMAND
 
Du kannst auch einfach das QueryUnload-Ereignis verwenden. Dort kannst du der Variable "UnloadMode" entnehmen, auf welche Weise das Schließen der Form eingeleitet wurde. (In dem Enum "QueryUnloadConstants" (siehe Objektkatalog mit F2) findest du die Beschreibungen der Werte von "UnloadMode".
Kleines Beispiel:
Code:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Select Case UnloadMode
Case vbAppTaskManager
	 '-->Anwendung wird vom Windows Task-Manager geschlossen.
Case vbAppWindows
	 '-->Aktuelle Windows-Sitzung wird beendet.
Case vbFormCode
	 '-->Unload-Methode wurde aus dem Code aufgerufen.
Case vbFormControlMenu
	 '-->Der Benutzer hat aus dem Systemmenüfeld im Formular den Befehl "Schließen" gewählt. (also das Ereignis das du Abfangen willst)
Case vbFormMDIForm
	 '-->Untergeordnetes MDI-Formular wird geschlossen, da das MDI-Formular geschlossen wird.
Case vbFormOwner
	 '-->Der Besitzer des Formulars schließt.
End Select
End Sub
 
Zurück