MFC Font in LOGFONT einlesen?

Hallo zusammen,

ich versuche gerade einen bestehenden Font in eine LOGFONT structur einzulesen um einzelne Parameter zu ändern. Aber irgendwie fehlt mir ein Schritt.

#tempCurrentFont = pDC->GetCurrentFont();

Und dann…?

Hat jemand ne Idee !!!

Mfg spongebob

ich versuche gerade einen bestehenden Font in eine LOGFONT
structur einzulesen um einzelne Parameter zu ändern. …

Hallo,

um was genau zu tun? Hintergrund: ein LogFont ist eigentlich ein Wunschzettel an das System, eine Änderung wirkt sich nicht unmittelbar auf den vorhandenen Font aus - setzt du z.B. die Dicke auf „Fettschrift“, so wird eine andere Truetype-Datei als Font geladen, z.B. arialb.ttf statt arial.ttf (b = Bold). Und 12 Punkt Arial ist ein anderer Font als 10 Punkt Arial, nicht der gleiche mit geänderter Höhe. M.a.W. 10 und 12 Punkt, normal und fett = 4 Fonts.

Gruss Reinhard

Hallo,

wie schon gesagt, stellt die LOGFONT-Struktur eine beschreibung eines Fonts dar.

Hier mal ein Beispiel:

LOGFONT logfont;
logfont.lfHeight = -13;
logfont.lfWeight = 400;// ? FW_DONTCARE;
logfont.lfWidth = 12;
logfont.lfPitchAndFamily = 49; //FIXED_PITCH | FF_MODERN ;
logfont.lfUnderline = 0;
logfont.lfStrikeOut = 0;
logfont.lfEscapement = 0;
logfont.lfOrientation = 0;
logfont.lfItalic = 0;
logfont.lfCharSet = 0;
logfont.lfQuality = 0; //PROOF_QUALITY;
logfont.lfOutPrecision = 2; //?OUT_DEVICE_PRECIS;
logfont.lfClipPrecision = 1; //CLIP_DEFAULT_PRECIS;
lstrcpy(logfont.lfFaceName,„Courier 10 CPI“);

Nach dem GetCurrentFont hast du die aktuelle Fontbeschreibung des DC.
Nun kannst du die einzelnen Eintraege in der Stuktur aendern, und dann anschliessend mittels

tempCurrentFont = pDC->GetCurrentFont();
/* dann die Optionen des Fonts manipilieren, und den Font dem DC wieder uebergeben */

oldFont = pdc->SelectObject(&tempCurrentFont );
//oldFont, um die Einstellungen bei Bedarf zurueckzusetzen

Dann kann man mittels TextOut(…) irgendwas auf den DC schreiben mit dem vorher festgelegten Font

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]