MDI Fenster ohne Rahmen



  • Hallo,

    habe eine Anwendung erstellt, darin wollte ich die Unterfenster komplett ohne Rahmen darstellen. Leider weiß ich nicht weiter.

    Bis jetzt sieht es so aus:
    http://s9.postimg.org/chxlm14mj/mdi.jpg

    Was ich will, ist den Rahmen im linken Fenster komplett auszublenden. Geht das überhaupt und wie stelle ich das an.

    Vielen Dank für die Hilfe!

    Code bis jetzt:

    MoveWindow(hMDIChild, 10, 10, 100, 200, TRUE);
    
    int Style   = GetWindowLong(hMDIChild, GWL_STYLE);
    int exStyle = GetWindowLong(hMDIChild, GWL_EXSTYLE);
    
    Style   &= ~WS_BORDER;
    
    exStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE);
    
    SetWindowLong(hMDIChild, GWL_STYLE, Style);
    SetWindowLong(hMDIChild, GWL_EXSTYLE, exStyle);
    
    SetWindowPos (hMDIChild, NULL, 0, 0, 0, 0,
                  SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | 
                  SWP_NOZORDER| SWP_NOOWNERZORDER | SWP_FRAMECHANGED);
    


  • Viele Stile können nachträglich nicht geändert werden. Du mußt sie also bei der Erstellung der mdi child Fenster weglassen.

    Mfg Martin



  • Viele Stile können nachträglich nicht geändert werden. Du mußt sie also bei der Erstellung der mdi child Fenster weglassen.

    Mfg Martin



  • Das wäre noch kein Problem. Leider geht es um eine Fremdanwendung in der ich die Fenster nachträglich zu Ändern versuche. Jeweils mehrere MDI-Fenster nebeneinander und ohne Rahmen. Das geht soweit ganz gut.

    Evtl. ist hier ein anderes Problem, was auch gelöst werden kann. Der Fenster-Inhalt ist abgesunken. Kann man das ändern?



  • Problem gelöst 😃

    Siet schon mal fast zu perfekt aus 🕶

    http://postimg.org/image/uhfts3i6p/

    Lösung:

    int chExStyle = GetWindowLongW(WindowHandle(Symbol(),0), GWL_EXSTYLE);
    
    chExStyle &= ~(WS_EX_CLIENTEDGE);
    
    SetWindowLongW(hWnd_Chart, GWL_EXSTYLE, chExStyle);
    

Anmelden zum Antworten