Druker+Funktionen



  • Hi

    Ich möchte etwas ausdrucken. (das ganze gibt am Schluss mehrere Seiten) Aus diesem Grund möchte ich die Fusszeile in einer Fukntion aufrufen leider funktioniert dies nicht! Scheinbar wird der Drucker nicht richtig an die Fukntion übergeben.

    So sieht der Code vor dem Aufruf der Funktion aus:

    if (dlgPrint.DoModal()==IDOK) 
        { 
            CDC dcPrint; 
            dcPrint.Attach(dlgPrint.GetPrinterDC()); 
            DOCINFO myPrintJob; 
            myPrintJob.cbSize = sizeof(myPrintJob); 
            myPrintJob.lpszDocName = "ADS"; 
            myPrintJob.lpszOutput = NULL; 
            myPrintJob.lpszDatatype = NULL; 
            myPrintJob.fwType = NULL; 
            if (dcPrint.StartDoc(&myPrintJob)>=0) 
            { 
                // Als Hilfe wie man bestimmte Parameter abfragt 
                int te = dcPrint.GetDeviceCaps(ASPECTY); 
                int test = dcPrint.GetDeviceCaps(ASPECTX); 
                int m_iHorizont = dcPrint.GetDeviceCaps(HORZRES); 
                int m_iVerdikal = dcPrint.GetDeviceCaps(VERTRES);
    			int spalte2;
    			int zeilenabstand; 
    
                dcPrint.StartPage(); 
                RECT rctA; 
                rctA.left = (m_iHorizont/210) * m_iLeft;            // 210 Breite DIN A4   
                rctA.top = (m_iVerdikal/297) * m_iTop;              // 297 Höhe DIN A4   
                rctA.right  = m_iHorizont - ((m_iHorizont/210) * m_iRight);   
                rctA.bottom = m_iVerdikal - ((m_iVerdikal/297) * m_iButton);
    
    fusszeile(&dcPrint);
    

    Dies ist die Funktion:

    void CADS2Dlg::fusszeile(CDC* dcPrintf)
    { 
        CString tag; 
        CString monat; 
        CString jahr;
    
        time_t aktuellezeit = time(NULL); 
        tm *datum = localtime(&aktuellezeit);
    
        tag.Format("%d",datum->tm_mday);
        monat.Format("%d",datum->tm_mon+1);
        jahr.Format("%d",datum->tm_year+1900);
    
        CString Textzeile;
        CString Dateiname="sahfjlasfhl.dat";
        CString Erstellt= "12.12.2004";
        CString datumaktuell = tag+"."+monat+"."+jahr;
    
        Textzeile="Dateiname: "+Dateiname +" | Erstellt am: "+Erstellt+" | Ausgedruckt am:"+datumaktuell;
    
        dcPrintf.DrawText(Textzeile, DT_WORDBREAK);
    
    }
    

    Es kommt immer diese Fehler:

    error C2228: Der linke Teil von '.DrawTextA' muss eine Klasse/Struktur/Union sein
    

    Kann mir jemand sagen, was ich falsch mache?
    Ich möchte ein Bild drucken, von dem ich einefach den Pfad in einer Variablen habe... (keine Ressourcen) wie geht das?

    Vielen Dank für die Antworten!



  • Mach statt dem . einen -> und schon geht das.

    Du hast da doch einen CDC*****, keinen CDC.


Anmelden zum Antworten