Schriftgröße und Text "fett" in MFC-Dialog ändern? Wie mach ich das????



  • Hallo zusammen,

    ich habe einen MFC-Dialog der mehrere Textelemente enthält (teilweise IDC_Static, ansonsten unterschiedliche Namen wie IDC_Text1, IDC_Text2 usw.) die ich gerne optisch verändern möchte.
    Bisher habe ich nur gesehen, dass man bei dem Dialog eine einzige Schriftart und -größe einstellen kann die offenbar für alles gilt. Kann mir jemand erklären, wie man einzelne Elemente unterschiedlich formatiert. Besonders interessant wäre für mich die Textfarbe, die Schriftart, die Schriftgröße und Text "fett".

    Bin für jede Hilfe dankbar. Am liebsten ausführlich und mit etwas Code.
    Vielen Dank!

    Gruß
    netfriend



  • Elemente, die du verändern willst benötigen eine eindeutige ID! IDC_STATIC ist KEINE eindeutige ID!
    Dann einfach ein CFont-Objekt erzeugen, deine Schrift initilisieren und per SetFont setzen.



  • Hallo dEUs,

    vielen Dank für Deine Antwort. Das mit der eindeutigen ID lässt sich machen.
    Kannst Du mir mal ein kleines Beispiel schreiben wie ich das mit dem CFont-Objekt mache? Wäre Dir dankbar....

    Gruß
    netfriend



  • CFont myFont;
        int nHeight=25;
        int nWidth=10;
        int nWeight=800;
        bool bUnderline=true;
        bool bItalic=true;
        bool bStrikeOut=true;
        myFont.CreateFont(nHeight,nWidth,0,0,nWeight,bItalic,bUnderline,bStrikeOut,0,0,0,0,0,"Arial");
        GetDlgItem(IDC_STATIC_FONT)->SetFont(&myFont);
    


  • Herzlichen Dank dEUs. Mir war nicht klar, wie ich das auf IDC_Static_Font anwende aber mit dem Beispiel klappts...



  • Macht IDC_MYSTATIC fett:

    CWnd* wnd = GetDlgItem(IDC_MYSTATIC);
    
        LOGFONT lf;
        wnd->GetFont()->GetLogFont(&lf);
        lf.lfWeight = FW_BOLD;
    
        static CFont myFont; // statt static besser Membervariable nehmen
        myFont.CreateFontIndirect(&lf);
        wnd->SetFont(&myFont);
    
    UpdateData(FALSE);
    


  • Hallöchen,

    ich bin nun auf selbiges Problem gestoßen:

    Dialog fleißig zusammengeklickert und dann wollte ich Schriftgrößen etc. ändern.

    Allerdings weiß ich nicht genau, wo ich dies mache 😞

    Habe verschiedene Stellen im Code durchprobiert aber nichts hat geklappt 😕



  • Doofchen schrieb:

    Hallöchen,

    ich bin nun auf selbiges Problem gestoßen:

    Dialog fleißig zusammengeklickert und dann wollte ich Schriftgrößen etc. ändern.

    Allerdings weiß ich nicht genau, wo ich dies mache 😞

    Habe verschiedene Stellen im Code durchprobiert aber nichts hat geklappt 😕

    Ich lege mir immer Membervariablen von Typ CFont an. Diese instanziere ich mir dann in der OnCreate der Viewklasse und weise das dann in der OnInitialUpdate der Viewklasse den Elementen zu. In der OnCtlColor verändere ich dann dynamisch z.B. die Farben.


Anmelden zum Antworten