Zwei Fragen zu Schriftart ändern



  • Guten Abend !

    1.) Wie kann ich die Schriftart eine Textfeldes per Code ändern ?

    2.) Wie kann ich die Schriftart von PropertySheets, inkl. aller PropertyPages ändern ?

    🙂

    Schönen Abend.



  • Hi,

    Schau dir mal die Klasse CFont und die Funktion SetFont an.

    Grüße Rapha



  • Rapha schrieb:

    Schau dir mal die Klasse CFont und die Funktion SetFont an

    Ja, und mit CreateFont kann man eine wird die Schrift "erstellt" und mit SetFont dem Textfeld z.B. zugeteilt. Aber das funktioniert nicht, da die Schrift immer undefinierbar, groß und fett ist.



  • Hi

    Wieso undefinierbar groß und fett 😕 ???
    Die Eigenschaften der Schriftart kannst du mit CreateFont angeben:

    CEdit *pEdit=(CEdit*) GetDlgItem(IDC_EDIT1);
    CFont Font;
    Font.CreateFont(20,20,0,0,FW_BOLD,FALSE,FALSE,0,DEFAULT_CHARSET,  OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH,NULL);
    pEdit->SetFont(&Font, TRUE);
    

    Grüße Rapha



  • Rapha schrieb:

    Hi
    Wieso undefinierbar groß und fett 😕 ???
    Die Eigenschaften der Schriftart kannst du mit CreateFont angeben:

    CEdit *pEdit=(CEdit*) GetDlgItem(IDC_EDIT1);
    CFont Font;
    Font.CreateFont(20,20,0,0,FW_BOLD,FALSE,FALSE,0,DEFAULT_CHARSET,  OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH,NULL);
    pEdit->SetFont(&Font, TRUE);
    

    Grüße Rapha

    Hmpf. Ich weiß auch nicht woran das liegt. Die Schriftart ist immer eine Tye, die mir noch bekannt ist, der Schriftgrad ist ca. 9-10, immer fett, egal ob Parameter dagegen sprechen oder nicht.

    Auch wenn ich eine Schriftart mit Namen im letzten Parameter definiere kommt, dieses mysteriöse Schrift.

    Wie kann ich denn nun korrekt UND funktionsfähig die Schriftart ändern ?



  • Hi

    Wie kann ich denn nun korrekt UND funktionsfähig die Schriftart ändern ?

    Leg das CFont Object als eine Membervariable in deiner Dialogklasse an, dann gehts 😉

    Grüße Rapha



  • Rapha schrieb:

    Leg das CFont Object als eine Membervariable in deiner Dialogklasse an, dann gehts

    Jupp. Dann geht's. 😮 🙄 😕

    Herzlichen Dank Rapha. 👍

    [hr]

    zu 2.) Ist das damit auch so einfach, also ein Membervariable der der Klasse CFont. Font kreieren, zuweisen an die PropertySheet-Klasse (PropertyPage?) und fertig ?



  • Hi

    Michael__W. schrieb:

    zu 2.) Ist das damit auch so einfach, also ein Membervariable der der Klasse CFont. Font kreieren, zuweisen an die PropertySheet-Klasse (PropertyPage?) und fertig ?

    Theoretisch (und höchstwahrscheinlich auch praktisch) schon. Versuchs mal.
    Ich hab auch noch ein Beispiel in der MSDN gefunden (leider nur zum Download):
    http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q142/1/70.asp&NoWebContent=1

    Grüße Rapha



  • Ich habe mir das Beispiel aus KB mal angeschaut. Ist aber eher für TabControl-PropertySheets. Ich benutze PropertySheets für einen Wizard. Sichrlich könnte man das Beispiel so umfunktionieren das es in meiner App "funktioniert". Das ist mir aber im Moment zu viel Arbeit.

    Ich habe das Problem jetzt folgendermaßen gelöst. Bei jeder Seite, die angezeigt wird, enumeriere ich im OnSetActive Event alle Controls und weise denn die neuen Schriftart zu. Doch leider gibt es da jetzt ein Problem. Die TopBar(weiße Leiste ganz oben bei Assistenten) ändert Ihre Schriftart nicht. Weiß jemand wie ich deren Schriftart geändert bekomme ?


Anmelden zum Antworten