Seite 1 von 2
Close-Button von Fenstern nicht anklickbar machen (Windows)
Verfasst: 04.05.2012 20:10
von Frabbing
Code: Alles auswählen
SetClassLongPtr_(WindowID(#Window), #GCL_STYLE, (GetClassLongPtr_(WindowID(#Window), #GCL_STYLE) | #CS_NOCLOSE))
RedrawWindow_(WindowID(#Window), #NULL, #NULL, #RDW_FRAME | #RDW_INVALIDATE | #RDW_ALLCHILDREN)
EnableMenuItem_(GetSystemMenu_(WindowID(#Window), #False), #SC_CLOSE, #MF_DISABLED)
Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 04.05.2012 20:15
von RSBasic
@Frabbing
Bitte immer einen vollständigen Code posten, damit jeder ohne zusätzlichem Aufwand direkt testen kann.
Z.B.:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetClassLongPtr_(WindowID(0), #GCL_STYLE, (GetClassLongPtr_(WindowID(0), #GCL_STYLE) | #CS_NOCLOSE))
RedrawWindow_(WindowID(0), #Null, #Null, #RDW_FRAME | #RDW_INVALIDATE | #RDW_ALLCHILDREN)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 04.05.2012 20:22
von ts-soft
Das ganze macht IMHO nur Sinn wenn dann auch das Schließen des Systemmenüs ausgegraut wird.
Code: Alles auswählen
EnableMenuItem_(GetSystemMenu_(WindowID(0), 0), 6, #MF_BYPOSITION | #MF_GRAYED)
Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 06.05.2012 20:50
von Frabbing
Manche Tools fügen Menüeinträge für Fenster dazu, Thomas. In dem Fall disablest du den verkehrten Eintrag.
Darum hatte ich das ganz weggelassen.
@RSBasic: Hatte da wenig Zeit, aber ich gelobe Besserung.

Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 06.05.2012 21:05
von RSBasic
Frabbing hat geschrieben:Manche Tools fügen Menüeinträge für Fenster dazu, Thomas. In dem Fall disablest du den verkehrten Eintrag.
Ich bin mir zwar nicht ganz sicher, aber soweit ich weiß sind die Einträge, die extra hinzugefügt wurden, immer unten und zwar unter der Trennlinie.
\\Edit:
Beispiele:
http://i.msdn.microsoft.com/cc163805.fi ... -us%29.gif
http://binaryworld.net/Main/Articles/La ... en3656.jpg
http://www.planet-source-code.com/uploa ... 211798.JPG
http://www.swissdelphicenter.ch/screenshots/Tip1435.PNG
http://images.cnblogs.com/cnblogs_com/s ... 843750.gif
http://www.visual-basic5.de/net/systemm ... ll_url.jpg
http://www.codeproject.com/KB/menus/Sub ... emMenu.gif
http://blog.blueshop.com.tw/images/blog ... ysMenu.png
http://www.visual-basic5.de/vbclassic/m ... sysmen.jpg
\\Edit2:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EnableMenuItem_(GetSystemMenu_(WindowID(0),#False), #SC_CLOSE, #MF_DISABLED)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 06.05.2012 21:59
von ts-soft
RSBasic hat geschrieben:
Code: Alles auswählen
EnableMenuItem_(GetSystemMenu_(WindowID(0), #False), #SC_CLOSE, #MF_DISABLED)
Ich habs doch geahnt, war nur zu faul zu suchen

Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 07.05.2012 17:50
von Frabbing
Super RSBasic, einwandfrei.

Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 07.05.2012 18:14
von ts-soft
Alt + F4 sollte auch noch berücksichtigt werden
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EnableMenuItem_(GetSystemMenu_(WindowID(0),#False), #SC_CLOSE, #MF_DISABLED)
AddKeyboardShortcut(0, #PB_Shortcut_Alt | #PB_Shortcut_F4, 4711)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 07.05.2012 21:35
von Frabbing
Also bei mir hier (gerade XP) ist das gar nicht notwenig, wenn der Menüeintrag disabled ist...
Re: Close-Button von Fenstern nicht anklickbar machen (Windo
Verfasst: 07.05.2012 21:43
von ts-soft
Frabbing hat geschrieben:Also bei mir hier (gerade XP) ist das gar nicht notwenig, wenn der Menüeintrag disabled ist...
Dann ist Dein PC kaputt
Fenster den Fokus geben, z.B. Titelleiste klicken, jetzt Alt Drücken und festhalten, jetzt F4 drücken und siehe
da, Fenster schließt, auch unter XP!
Gruß
Thomas