Systemmenü deaktivieren
-
Hallo,
wenn ich eine Single-Dok-Appl erstelle, habe ich in der Titelleiste des Hauptfensters der Appl automatisch die Buttons Schließen, Maximieren/Wiederherstellen und Minimieren. Außerdem habe ich noch das Systemmenü mit Schließen etc.
Gibt es eine Möglichkeit diese zu entfernen oder zumindest zu deaktivieren?
Oder kann ich die Nachrichten irgendwie abfangen, um die Aktionen zu verhindern?Danke ... Chris
[ Dieser Beitrag wurde am 27.04.2003 um 20:46 Uhr von MuehBln editiert. ]
-
Schau mal unter "CreateWindow" und "CREATESTRUCT" in der MSDN nach.
Bei dir müsste in der MainFrm.cpp sowas wie das da stehen:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; --> // ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie --> // CREATESTRUCT cs modifizieren. return TRUE; }
Wie das ändern? k.a. hab bisher fast immer mit Dialogfeldbasiert was gemacht.
Ansonsten schau ob du bei dir "CreateWindow" findest und ändere da den dritten Parameter ab (kein WS_SYSMENU). So hab ich's wegbekommen - war allerdings nicht vom assi erstellt sondern per hand.
Hoffe konnte etwas helfen - so long...
-
Außerdem habe ich noch das Systemmenü mit Schließen etc.
Gibt es eine Möglichkeit diese zu entfernen oder zumindest zu deaktivieren?
Oder kann ich die Nachrichten irgendwie abfangen, um die Aktionen zu verhindern?du kanst dein Systemmenü auch individual gestalten, sch mal unter den messages.
hier ab ich's
http://www.codeproject.com/menu/menu_non_framewnd.asp[ Dieser Beitrag wurde am 28.04.2003 um 14:40 Uhr von vdittrich editiert. ]
-
Vielen Dank, hat mir sehr weitergeholfen.
Hab ein wenig rumprobiert und folgende Lösung gefunden:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; --> // ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie --> // CREATESTRUCT cs modifizieren. cs.style = WS_BORDER; //damit werden Systemmenü und -buttons geext return TRUE; }
Gruß
Chris
-
Das Systemmenü konnte ich deaktivieren.
In einem anderen Kontext möchte ich das Systemmenü gern beibehalten, aber nur den Menüpunkt Schließen bzw. den X-Button deaktivieren.
Weiß jemand, wie das geht?
Danke...Chris
-
Hi.........
Versuchs mal damit...DeleteMenu ( GetSystemMenu ( Handle, false ), SC_CLOSE, MF_BYCOMMAND );
MFG Aoeke
-
Guckst Du hier... könnte hilfreich sein
x oben rechts ausschaltenMfG veganza
[ Dieser Beitrag wurde am 30.04.2003 um 20:44 Uhr von veganza editiert. ]