Font Darstellung
-
Versuche die Fonthöhe von 8 auf 10 Punkte in 0,1 Schritten zu erhöhen.
Das Ergebnis ist ein treppenförmiger Verlauf. Jedoch bei Änderung des
lfEscapement von 0 auf 1(z.Bsp.) ist der Verlauf in Ordnung. Jedoch ist der
Text dadurch etwas "schief". Hat jemand Erfahrung damit gemacht?void __fastcall TForm1::Button2Click(TObject *Sender){ TEXTMETRIC tm; LOGFONT logfont; logfont.lfHeight = 0; logfont.lfWidth = 0; logfont.lfEscapement = 0; logfont.lfOrientation = 0; logfont.lfWeight = FW_NORMAL; logfont.lfItalic = FALSE; logfont.lfUnderline = FALSE; logfont.lfStrikeOut = FALSE; logfont.lfCharSet = DEFAULT_CHARSET; logfont.lfOutPrecision = OUT_PS_ONLY_PRECIS; logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; logfont.lfQuality = PROOF_QUALITY; logfont.lfPitchAndFamily = VARIABLE_PITCH | FF_SWISS; StrCopy (logfont.lfFaceName, TEXT("Arial")); AnsiString Text= "TextTestTextTestTextTestTextTestTextTestTextTestTextTest"; double pt; TCanvas *C =this->Canvas; int nWidth = ::GetDeviceCaps( C->Handle, HORZRES), nHeight = ::GetDeviceCaps( C->Handle, VERTRES), nHDPI = ::GetDeviceCaps( C->Handle, LOGPIXELSX), nVDPI = ::GetDeviceCaps( C->Handle, LOGPIXELSY); ::SetMapMode( C->Handle, MM_ISOTROPIC ); ::SetWindowExtEx( C->Handle, nWidth * 25400 / nHDPI, -nHeight * 25400 / nVDPI, // pos. y nach unten 0 ); for( int i=0; i<=30; i++ ) { pt = 8.0 + ((double)i)/10.0; // um 0.1 erhöhen logfont.lfHeight =-pt2screen(pt); logfont.lfEscapement = 0; // "gerader" Text C->Font->Handle=CreateFontIndirect (&logfont); C->TextOut( 10, 1000 + i * 5000, Text ); logfont.lfHeight =-pt2screen(pt); logfont.lfEscapement = 1; // Schrägstellen C->Font->Handle=CreateFontIndirect (&logfont); C->TextOut( 150000, 1000 + i * 5000, Text ); } } // Font-Points in Screen-Einheiten umrechnen (1 pt = 1/72 inch = konst.!): int pt2screen( double pt ) { // 1 Screen-Unit = 1/1000stel mm: // 1 pt = 1/72 " = 25,4 / 72 mm return int(pt * 25400.0 / 72.0 + 0.5); // Rundung }
-
Benutze doch bitte die Code-Tags. Das kann ja kein Mensch lesen.
-
Du musst bei "BBCode in diesem Beitrag deaktivieren" das Häkchen entfernen (hatte ich auch erst übersehen
)