Titelzeile (SDI/MDI): Font, Farbe, Hintergrund ändern + mehrzeilig anzeigen



  • Uff, das sieht ja völlig fremd aus. 😮
    Danke, das schau ich mir gleich mal an. 👍



  • Und schreib mal, wenn es funktioniert hat. Hat meine Neugierde geweckt. 🙂
    Viel Erfolg.

    Paul.



  • Bist du eigentlich schon weiter gekommen?



  • Nein, ich war dann davon abgekommen, weil ich erstmal die leichteren Änderungen machen wollte. 🙄
    Ich melde mich dann aber hier. 🙂



  • So, ich habe mir gerade mal das Demoprojekt geladen.
    Leider haben die Änderungen nur in den Childfenstern Effekt. 😞

    Ich brauchs ja im Mainframe.

    Hoffentlich kann ich das anpassen. 🙄



  • Ja, ist mir da auch aufgefallen. Aber ich bin mir sicher, dass du das schaffst (und hier dann die Lösung veröffentlichst). 😃

    Viel Erfolg!

    Paul.



  • Jupp, man kann es anpassen. 👍

    im Header vom Mainframe:

    CMultiLineCaptionEx m_Caption;
    

    im cpp:

    m_Caption.Install(this);
    	LOGFONT lf;
    	m_Caption.GetTextAttributes()->GetActiveFont()->GetLogFont(&lf);
    	lf.lfHeight = -80;
    	m_Caption.GetTextAttributes()->SetActiveFont(lf);
    

    Und schon erschlägt einen die Überschrift. 😃

    ...aber rein theoretisch kann man so herausfinden, was eingestellt ist und dann vielleicht doch nur die angezeigte Textmenge anpassen. 🙂
    ...ach egal, ich lass es bei der riesigen Kurzform. 😉



  • Sehr schön. Das ging ja schnell. 🙂
    Vielleicht sollte ich mir die Klasse auch nochmal anschauen...

    👍 Weiter so!



  • So, ich habs jetzt in mein Projekt übernommen, hat ganz gut funktioniert.
    Wenn man keinen Maximieren-Knopf haben will, gibts allerdings einen Fehler, dazu steht eine Lösung in der Diskussion zum Programm.

    Damit funktioniert es jetzt, ich kann wieder minimieren ohne ins leere klicken zu müssen. 😉

    Leider macht das einfach eine blaue Titelzeile, keine mit Farbverlauf - bzw ich hab jetzt ehrlich keinen Bock mehr, mir rauszusuchen, wie ich die Titelzeilenfarben rausfinde und dann eine GradientCaption zu nutzen. 🙄

    Ist okay so. 🙂



  • Solange du zufrieden bist. 🙂
    Vielleicht kann das hier auch in die FAQ?



  • Anmerkung: Sobald das Fenster ein Menü hat, sollte man nur CSingleLineCaption verwenden, da das Menü sonst nicht mehr angezeigt wird. 😞
    Da dann aber größere Schrift unten abgeschnitten wird, muss man nachbessern:

    ////////
    // Calculate the caption text clipping rect
    //
    CRect CCaption::GetTextRect()
    {
    	CRect textRect = GetCaptionRect();
    	textRect.left += GetIconWidth();
    	textRect.right -= GetButtonsWidth() + 4;
    // 	textRect.top -= 2;
    	textRect.top -= 6;
    	return textRect;
    }
    

    Außerdem muss man das Icon von Hand nochmal mit SetIcon festlegen.


Anmelden zum Antworten