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 voraus

    Peter07



  • 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 befehl

    dcPrint.SelectObject(oldFont);
    

    kannst du die alte schriftart wieder zurückstellen, die eingestell war bevor du eine neue geladen hast.
    intressant ist auch noch

    TEXTMETRIC 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).


Anmelden zum Antworten