MDI und Fensterstyle



  • Hi,

    ich habs versucht, es klappt aber nicht. Anscheinend wird das Child Window von all den Veränderungen nicht betroffen. Wenn ich allerdings z.b die Maximize Box weglassen will, funktioniert es, diese wird dann "vergraut".

    Das hilft aber nicht, weil der fette Rahmen und die Titelleiste weg muss...

    Ich würde also gerne das Childwindow im WS_EX_TOOLWINDOW Style haben, aber vermutlich werden Childs über CreateWindow und nicht über CreateWindowEx erzeugt, oder denke ich da falsch?

    viele grüße,
    bjoern



  • Hmm, also ich habs versucht und bei mir hats geklappt !
    Dann versuche mal im Vierten Schritt beim erstellen einer MDI-Anwendung
    auf Advanced zu klicken und dort bei WindowStyles deine ChildWindow zu
    kreieren !

    Gruß
    :: NoName ::



  • Aaaaaaaalso. Ich habe folgendes hinbekommen:

    habe in meiner FrameKlasse

    ActivateFrame
    

    ueberschrieben und folgendes ergaenzt:

    void CDiagramFormFrameChild::ActivateFrame(int nCmdShow)
    {
    	ModifyStyleEx(0, WS_EX_PALETTEWINDOW   , SWP_FRAMECHANGED); 
    	CMDIChildWnd::ActivateFrame(nCmdShow);
    }
    

    Das Ergebnis findet sich hier:

    http://www.fal-design.com/fal-image/img/20041007_035451.jpg

    Wie man sieht, ist der Dialog in das Fenster eingelassen. Ich habe versucht, diesen Rahmen wegzubekommen:

    void CDiagramFormFrameChild::ActivateFrame(int nCmdShow)
    {
    	ModifyStyleEx(WS_EX_STATICEDGE, WS_EX_PALETTEWINDOW, SWP_FRAMECHANGED); 
    	CMDIChildWnd::ActivateFrame(nCmdShow);
    }
    

    Also das war nicht der einzige Versuch, ich habs mit fast allen Window-Styles ausprobiert. Es geht nicht!

    Dann habe ich eine Routine geschrieben, die mir mit

    GetStyle();
    

    alle aktuellen Styles ausgibt (die Window Style Variablen werden darin angezeigt, also GetStyle wird aufgeschluesselt). Der Style WS_EX_PALETTEWINDOW, den ich dem Fenster zugewiesen habe, ist allerdings nicht aufgefuehrt! Das laesst mich vermuten, dass irgendwo, wo auch das Fenster kreirt wird, der Style eines Rahmens immer hinzugefuegt wird. Nur weiss ich leider nicht wo.

    Uebrigens, hier ein Screenshot der WindowStyles des modifizierten Fensters:

    http://www.fal-design.com/fal-image/img/20041007_040211.jpg

    Weiss also jemand, wie ich diesen bloeden fetten Rahmen um das Fenster wegbekomme? Die Titelleiste hab ich ja bereits erfolgreich modifiziert, dank NoNames Hilfe 🙂

    viele gruesse,
    bjoern



  • Also wie man auf dem zweiten Pic erkennen kann (http://www.fal-design.com/fal-image/img/20041007_040211.jpg) ist der Style 'WS_CAPTION' noch vorhanden ! Nimm diesen Style mit ModifyStyle(Ex) weg und dann müsste es gehen !

    Gruß
    :: NoName ::



  • Habs gerade versucht es klappt leider nicht 😞



  • Also bei mir klappt es. So muss dein Code aussehen :

    void CChildFrame::ActivateFrame(int nCmdShow) 
    {
    	// TODO: Add your specialized code here and/or call the base class
    
    	ModifyStyle(WS_CAPTION, 0);
    
    	CMDIChildWnd::ActivateFrame(nCmdShow);
    }
    

    Gruß
    :: NoName ::



  • Wenn ich WS_CAPTION wegnehme (so wie in deinem Code), bekomme ich das hier:

    http://www.fal-design.com/fal-image/img/20041007_135514.jpg

    sieht auch nett aus, hat aber leider immer noch den fetten Rahmen. Siehts bei dir anders aus?



  • Genau so siehts bei mir auch aus...
    Versuch mal

    ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0);
    

    Vielleicht gefällt dir das besser 😉

    Gruß
    :: NoName ::



  • Ne, das ist es auch nicht. Das Dialogfeld ist immer noch eingelassen und ohne das WS_BORDER kann man das Fenster auch leider nicht mehr verschieben. Auch doof. Ich befürchte, dass man es gar nicht verhindern kann, dass das Child-Window eingelassen ist. 😞



  • Sorry, hab mein Account ein bisschen spät gecheckt 😉
    Ich hab dich doch recht verstanden (?) du möchtest doch das dein ChildFrame
    ein WS_TOOLWINDOW Style hat ? Und was genau meinst du mit "eingelassen" ?

    Hier eine Test Applikation :

    Download : --------------------------------------------------

    Die ChildFrames der Test Applikation haben auch nur den ToolWindow Style ...
    Gib mir bitte bescheid, ob alles bei dir klappt oder nicht ?

    Gruß
    :: NoName ::


Anmelden zum Antworten