aktuellen FONT auslesen



  • Hallo

    Ich suche ne Funktion die mir den aktuell eingestellten FONT liefert.
    Eig müsste es doch ne Funktion wie

    FONT getCurrentFont(HDC hdc)
    

    geben aber ich finde keine.

    Gruß Jan



  • Zu jedem DC ein Fenster, soll heißen

    HFONT f = reinterpret_cast<HFONT>(SendMessage(/*HANDlE*/, WM_GETFONT, 0, 0));
    

    Um Details über den eingewählten Font zu bekommen, bietet sich GetObject an.



  • Danke für die schnelle Antwort
    Die Funktion gibt mir NULL zurück was heißt das der SystemFont benutzt wird.
    Damit zur nächsten Frage. Wie bekomm ich den SystemFont?


  • Mod

    jan91 schrieb:

    Danke für die schnelle Antwort
    Die Funktion gibt mir NULL zurück was heißt das der SystemFont benutzt wird.
    Damit zur nächsten Frage. Wie bekomm ich den SystemFont?

    Das kannst Du daraus nicht schließen. Was für ein Control ist es denn?
    Wenn es ein Custom-Control ist, oder ein ActiveX dann reagiert es evtl. einfach nicht auf die Nachricht (gibt NULL) und benutzt einen intern bestimmten Font.
    D.h. meistens auch, das WM_SETFONT genauso ignoriert wird.

    Ansonsten siehe GetStockObject...



  • Wenn ich mir den ersten Beitrag so ansehe, dann sehe ich, dass der Font aus einem DC ermittelt werden soll. Also eher ungefähr so:

    HFONT getCurrentFont(HDC hdc)
    {
        return (HFONT)GetCurrentObject(hdc, OBF_FONT);
    }
    

Anmelden zum Antworten