Probleme mit der Schriftgröße für Editfelder, Buttons...



  • Hallo,

    ich möchte variabel im Programm der Schriftgröße für Buttons bestimmen.

    Leider bleiben die Schriftgröße des Buttons und die Schriftgröße im Editfeld unverändert.

    Beispiel:

    CFont font;
    LOGFONT lf;
    
    memset(&lf, 0, sizeof(LOGFONT));       // zero out structure
    
    // Schriftdicke
    lf.lfWeight = FW_BOLD;
    // Schriftgröße
    lf.lfHeight = 20;              
    
    // font erstellen
    VERIFY(font.CreateFontIndirect(&lf)); 
    
    // Font setzen
    CFont* old_font = dc->SelectObject(&font);
    
    // Schrift für Editfeld und Button einstellen
    m_editfeld_1.SetFont(&font);
    m_button_Quittieren.SetFont(&font);
    
    // Beschriftung des Buttons
    m_button_Quittieren.SetWindowText("Test");
    

    Ich hoffe, dass jemand eine Idee hat, wieso ich die Größe nicht beeinflussen kann.

    Vielen Dank und viele Grüße,
    Tino



  • Du musst sicherstellen, dass der Font solange erhalten bleibt, wie die Buttons vorhanden sind. Also besser als Member-Variable in den Dialog:

    class CMyDialog : public CDialog
    {
        ...
        CFont m_font;
        ...
    };
    

    Dann in OnInitDialog():

    [cpp]LOGFONT lf;

    memset(&lf, 0, sizeof(LOGFONT)); // zero out structure
    strcpy(lf.lfFaceName, "Arial");
    // Schriftdicke
    lf.lfWeight = FW_BOLD;
    // Schriftgröße
    lf.lfHeight = 20;

    // font erstellen
    VERIFY(m_font.CreateFontIndirect(&lf));

    // Font setzen
    //CFont old_font = dc->SelectObject(&font); nicht nötig*

    // Schrift für Editfeld und Button einstellen
    m_editfeld_1.SetFont(&m_font);
    m_button_Quittieren.SetFont(&m_font);

    // Beschriftung des Buttons
    m_button_Quittieren.SetWindowText("Test"); [/cpp]


Anmelden zum Antworten