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]