Problem mit Drucken



  • Hallo MFC-Gemeinde!

    Habe ein Problem mit dem Drucken. Aus dem Buch Visual C++ 6 in 21 Tagen wird beschrieben wie man eine Druckauftrag aus einem Dialog (mit IDOK über OnOK) starten kann.
    Das bekomme ich auch so hin, aber sobald ich meinen eigenen Button (zB.: IDC_DRUCKEN über OnPrint)verwende springt er nichtmal in die erste if-Anweisung:
    Was ist das los? Geht das nur mit IDOK?

    Danke für eure Hilfe

    GeStro

    void CPrinterDlg::OnOk()
    {
    CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this);

    if(dlgPrint.DoModal()==IDOK)
    {
    CDC dcPrint;
    dcPrint.Attach(dlgPrint.GetPrinterDC());
    DOCINFO myPrintJob;
    myPrintJob.cbSize = sizeof(myPrintJob);
    myPrintJob.lpszDocName = "MeinDruckAuftrag";
    myPrintJob.lpszOutput = NULL;
    myPrintJob.lpszDatatype = NULL;
    myPrintJob.fwType = NULL;

    if(dcPrint.StartDoc(&myPrintJob)>0)
    {
    dcPrint.StartPage();
    dcPrint.TextOut(0,0,"Mein kleiner Druckauftrag");
    dcPrint.EndPage();
    dcPrint.EndDoc();
    }

    dcPrint.DeleteDC();
    }

    CDialog::OnOK();

    }
    Funktioniert so ganz gut - meine Version:

    void CPrinterDlg::OnPrint()
    {
    CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this);

    if(dlgPrint.DoModal()==IDC_PRINT)
    {
    CDC dcPrint;
    dcPrint.Attach(dlgPrint.GetPrinterDC());
    DOCINFO myPrintJob;
    myPrintJob.cbSize = sizeof(myPrintJob);
    myPrintJob.lpszDocName = "MeinDruckAuftrag";
    myPrintJob.lpszOutput = NULL;
    myPrintJob.lpszDatatype = NULL;
    myPrintJob.fwType = NULL;

    if(dcPrint.StartDoc(&myPrintJob)>0)
    {
    dcPrint.StartPage();
    dcPrint.TextOut(0,0,"Mein kleiner Druckauftrag");
    dcPrint.EndPage();
    dcPrint.EndDoc();
    }

    dcPrint.DeleteDC();
    }

    //CDialog::OnPaint();
    CDialog::OnOK();

    }



  • if(dlgPrint.DoModal()==IDC_PRINT)

    Haste mal in die MSDN geschaut, welche Werte DoModal() zurückgibt?


Anmelden zum Antworten