Drucken von einer dialogfeldbasierten Anwendung
-
Hallo,
ich habe eine dialogfeldbasierte Anwendung mit Visual C++ 6.0 erstellt. Es wird eine Schriftart erstellt und in einem Eingabefeld angezeigt. Einen, in dem Eingabefeld befindlichen, Text möchte ich mit Hilfe des Drucker - Gerätekontextes ausdrucken. Das Problem besteht darin, den Text in der gewählten Formatierung zu drucken. Der Text wird trotz der richtigen Darstellung in dem Eingabefeld immer in der Standard Schriftart gedruckt. Mit der Funktion dcPrint.DrawText kann ich die Position des Textes aber nicht die Größe, Art etc. beeinflussen.
Ich finde keine geeignete Funktion. Kann mir jemand weiterhelfen?
Danke im vorausPeter07
-
Drucker inizialisieren und bereich auswählen scheinst du ja schon hinbekommen zu haben. also nur für fontauswahl brauchst du folgende zeilen:
CFont newFont; VERIFY(newFont.CreateFont( 60, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily "Arial")); // lpszFacename CFont* oldFont = dcPrint.SelectObject(&newFont);dcPrint ist in dem fall vom typ CDC.
mit dem befehldcPrint.SelectObject(oldFont);kannst du die alte schriftart wieder zurückstellen, die eingestell war bevor du eine neue geladen hast.
intressant ist auch nochTEXTMETRIC textMetric; dcPrint.GetTextMetrics(&textMetric); int posX = textMetric.tmAveCharWidth * string.GetLength();hier kannst du verschieden sachen der eingestellten schriftart abfragen.
wie z.b. hier die durchschnittliche breite der zeichen in pixel (mal der stringlänge).