windowsstyle - Das 'x' für das Schließen entfernen
-
Ich möchte bei einem Fenster die Fläche fürs 'Fenster schließen' entfernen. Habe aber noch keine Anweisung gefunden, mit der ich das machen kann. Geht das überhaupt nicht, und wenn doch wie?
Das Programm soll dann von einem anderen Programm aus geschlossen werden. Ich will so verhindern, dass dieses vor dem anderem Programm geschlossen wird.
-
wie hast du das fenster erstellt ? ist es eine dialog resource oder per code erstellt ?
-
Popup Windows haben diesen Schalter immer. Du müsstest die Caption entfernen, aber das möchtest Du nicht.
Warum soll der Schliessen-Schalter nicht da sein?
Abfangen kanst Du ihn ja über WM_SYSCOMMAND SC_CLOSE!
-
Ich habs gefunden. WS_EX_TOOLWINDOW
So bleibt die Caption erhalten und Maximieren/Minimieren/Schließen ist weg.
Warum soll der Schließen schalter nicht da sein: Weil man dann nichts schließen kann. Das Fenster brauche ich für die Auswahl von Datensätzen für ein anderes Simulationsprogram, in dem ich so etwas nicht bauen kann.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_EX_TOOLWINDOW | WS_EX_TOPMOST; return TRUE; }
-
Absoluter Quark.

Du lädst einen WS_EX_ Stil in das style Feld hinein.
WS_EX_ Stile dürfen nur um dwExStyle Feld verwendet werden.Defakto löscht Du WS_POPUP und WS_CAPTION und erzeugst ein Fenster mit undefiniertem Stilen! Da es nun keine Caption mehr hat, ist der Close Buttonnatürlich auch weg!