PDA

Vollständige Version anzeigen : Hauptfenster nicht schließen


schlarb
05.10.2000, 14:07
Hallo, habe ein Formular welches als Hauptmaske dient. Über dieses wird ein weiteres Formular geöffnet. Jetzt meine Frage, wie kann ich erhindern das die Hauptmaske über das Symbol "schließen" (X)beendet wird.

Jan
05.10.2000, 14:28
Hallo,
ganz einfach :in der entwurfsansicht bei Eigenschaften des formulars kannst du entscheiden welche schaltflächen (min,max,schliessen) angezeigt werden sollen.

Günther Kramer
05.10.2000, 15:16
Hallo Schlarb,

den Ausführungen von Jan ist nichts hinzuzufügen.
Solltest Du noch eine Möglichkeit benötigen, um das "X" von Access zu entfernen, habe ich Dir auch einen Code. Damit kann man die Größer-/Kleiner-Schaltflächen und das Schließen-Button deaktivieren.
Bei Interesse bitte eine Nachricht hier ins Forum! Nicht per Mail!

schlarb
05.10.2000, 22:43
Hallo Günther,

Ich benötige eine Möglichkeit, um das "X" von Access zu entfernen. Würde mich über den Code freuen.

Gruß Michael

Günther Kramer
05.10.2000, 22:59
Hallo schlarb,

da den Code vielleicht doch mehrere Leute haben möchten, poste ich diesen doch hier im Forum:

Leg ein Modul an und füge folgenden Cod ein:

Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

Public Function NoExitMenueButton()
' macht den Schließenbutton des Accessmenüs grau,
' so kann der Anwender nur über den beenden Knopf schließen.
Dim mAntwort As Variant
Dim mHandle As Variant

mHandle = GetSystemMenu(Application.hWndAccessApp, False)
mAntwort = EnableMenuItem(mHandle, 6, 1025)

End Function

Public Function YesExitMenueButton()
' macht den Schließenbutton des Accessmenüs wieder sichtbar.
Dim mAntwort As Variant
Dim mHandle As Variant

mHandle = GetSystemMenu(Application.hWndAccessApp, False)
mAntwort = EnableMenuItem(mHandle, 6, 1024)

End Function

Den folgenden Code kopierst Du in das Forumlar, welches in Deiner Datenbank als erstes geladen wird:

Private Sub Form_Load()
NoExitMenueButton
End Sub

Günther Kramer
05.10.2000, 23:03
Hier ist der Code zum deaktivieren der Schaltflächen zum Minimieren und Maximieren:

Leg ein Modul an und kopieren den folgenden Code in das Modul:

Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_MINIMIZEBOX = &H20000
Public Const GWL_STYLE As Long = (-16)
Public Const SWP_DRAWFRAME As Long = &H20
Public Const SWP_NOMOVE As Long = &H2
Public Const SWP_NOSIZE As Long = &H1
Public Const SWP_NOZORDER As Long = &H4
Public Const SWP_FLAGS As Long = SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or
SWP_DRAWFRAME


Public Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Public 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 Function KillMaxMin()
Dim style As Long

'aktueller Access-Window-Style
style = GetWindowLong(Application.hWndAccessApp, GWL_STYLE)

'modifizieren des Access-Window-Styles
style = style Xor WS_MAXIMIZEBOX
style = style Xor WS_MINIMIZEBOX

'neuen Style setzen und aktualisieren
If style Then
Call SetWindowLong(Application.hWndAccessApp, GWL_STYLE, style)
Call SetWindowPos(Application.hWndAccessApp, 0, 0, 0, 0, 0, SWP_FLAGS)
End If
End Function
'++++++++++++++
' Ende
'++++++++++++++

Rufe einfach die Funktion "KillMaxMin()" im ersten Formular auf und die Buttons verschwinden. :)

schlarb
06.10.2000, 00:04
Hallo Günther,
besten Dank funk prima.
Michael