List Box drucken im Dialog



  • Hallo Leute ich möchte eine Listbox im Dialogfeld drucken, ich habe auch
    schon durch die FAQ einen funktionierenden Code geschrieben. Das Problem ist aber das meine Listbox zwar ausgedruckt wird aber ohne Zeilenumbrüche die ich mit "\n" angebe. Der Drucker versucht dann anscheinend "\n" zu drucken und auf dem Platt sieht man dort wo eigentlich der Zeilenumbruch sein müsste dieses Zeichen: "[]".



  • CString zeichen;
       CString drucken;
       int n;
       int i;
       for (i=0; i < inhalt.GetCount(); i++)
       {
          n = inhalt.GetTextLen( i );
          inhalt.GetText( i, zeichen.GetBuffer(n));
    	  drucken = drucken + + "\n" + zeichen;
       }
    
       CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this); 
    dlgPrint.GetDefaults(); 
    //if (dlgPrint.DoModal()==IDOK) 
    //{ 
     // Den Drucker-DC vom Dialogfeld mit einem 
     // CDC-Objekt verbinden 
     CDC dcPrint; 
     dcPrint.Attach(dlgPrint.GetPrinterDC()); 
    
     // Eine DOCINFO-Struktur erzeugen und füllen 
     DOCINFO myPrintJob; 
     myPrintJob.cbSize = sizeof(myPrintJob); 
     myPrintJob.lpszDocName = "MeinDruckAuftrag"; 
     myPrintJob.lpszOutput = NULL; 
     myPrintJob.lpszDatatype = NULL; 
     myPrintJob.fwType = NULL; 
    
    // Als Hilfe wie man bestimmte Parameter abfragt 
    int te = dcPrint.GetDeviceCaps(ASPECTY); 
    int test = dcPrint.GetDeviceCaps(ASPECTX); 
    te = dcPrint.GetDeviceCaps(HORZRES); 
    test = dcPrint.GetDeviceCaps(VERTRES);
    
    // Ausdruck des Dokuments starten 
     if (dcPrint.StartDoc(&myPrintJob)>=0) 
     { 
     // Eine Seite beginnen 
     dcPrint.StartPage(); 
    
     // Zeichnen beginnen
      dcPrint.TextOut(0,0,drucken);
    
     // Seite auswerfen 
     dcPrint.EndPage(); 
    
     // Dokument schließen 
     dcPrint.EndDoc(); 
     } 
    
     // Druckergerätekontext löschen 
     dcPrint.DeleteDC(); 
     //} 
    }
    


  • OK ich formuliere die Frage ein bisschen algemeiner.
    Wie kann ich den Inhalt einer Listbox drucken?


Anmelden zum Antworten