DruckenDialog aufrufen und dann drucken in MFC



  • Ich habe in einer Klasse eine Methode geschrieben, die mir einige Daten, auf den LPT1-Drucker schiebt. Das ist die Funktion:

    /* ========== Print_HeaderInformation ========== */
    // Return Values
    // 1 = Couldnt Find Printer on LPT1
    // 0 = Everything worked fine
    // --------------------------------
    // Parameters   "1" means "Print" - "0" means "Do Not Print"
    // one = Bitrate
    // two = Channel Format
    // three = Frequency
    // four = Layer
    // five = Emphasis
    // six = Original
    // seven = Copyright
    // eight = Private Bit
    // nine = Protection Bit
    // ten = Padding Bit
    // eleven = Header Location
    // kickpaper = Throws The Sheet of Paper Outta The Printer 
    /**/
    /**/    short int Print_HeaderInformation( short int one,
    /**/                short int two,
    /**/                short int three, 
    /**/                short int four,
    /**/                short int five,
    /**/                short int six,
    /**/                short int seven,
    /**/                short int eight,
    /**/                short int nine,
    /**/                short int ten,
    /**/                short int eleven,
    /**/                short int kickpaper)
    /**/    {
    /**/        char buffer[30];
    /**/        FILE * PrinterPointer;
    /**/        if (NULL == (PrinterPointer = fopen("LPT1","w")))
    /**/        return( 1 );
    /**/        else
    /**/        {
    /**/            if(one == 1)
    /**/            {
    /**/                _itoa( this->Get_Bitrate(), buffer, 10 );
    /**/                fprintf(PrinterPointer,"\n\n\n\n\n\nBitrate:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/            
    /**/            if(two == 1)
    /**/            {
    /**/                switch(this->Get_ChannelFormat())
    /**/                {
    /**/                    case 0: {   strcpy(buffer, "Stereo");   }   break;
    /**/                    case 1: {   strcpy(buffer, "Joint Stereo"); }   break;
    /**/                    case 2: {   strcpy(buffer, "Dual Channel"); }   break;
    /**/                    case 3: {   strcpy(buffer, "Mono"); }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Channel Format:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/
    /**/            if(three == 1)
    /**/            {
    /**/                _itoa( this->Get_Frequency(), buffer, 10 );
    /**/                fprintf(PrinterPointer,"Frequency:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }   
    /**/
    /**/            if(four == 1)
    /**/            {
    /**/                _itoa( this->Get_Layer(), buffer, 10 );
    /**/                fprintf(PrinterPointer,"Layer:\t\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/
    /**/            if(five == 1)
    /**/            {
    /**/                switch(this->Get_Emphasis())
    /**/                {
    /**/                    case 0: {   strcpy(buffer, "None"); }   break;
    /**/                    case 1: {   strcpy(buffer, "50/15 ms"); }   break;
    /**/                    case 2: {   strcpy(buffer, "Reserved"); }   break;
    /**/                    case 3: {   strcpy(buffer, "CCIT J.17");    }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Emphasis:\t");
    /**/                fprintf(PrinterPointer,buffer);         
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/            if(six == 1)
    /**/            {
    /**/                switch(this->Get_Original())
    /**/                {
    /**/                    case 0: {   strcpy(buffer, "Copy"); }   break;
    /**/                    case 1: {   strcpy(buffer, "Original Media");   }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Original:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/            if(seven == 1)
    /**/            {
    /**/                    switch(this->Get_Copyright())
    /**/                {
    /**/                    case 0: {   strcpy(buffer, "Not Copyrighted");  }   break;
    /**/                    case 1: {   strcpy(buffer, "Copyrighted");  }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Copyright:\t");
    /**/                fprintf(PrinterPointer,buffer);         
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/
    /**/            if(eight == 1)
    /**/            {
    /**/                switch(this->Get_Private())
    /**/                {
    /**/                case 0: {   strcpy(buffer, "Not set");  }   break;
    /**/                case 1: {   strcpy(buffer, "Set");  }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Private Bit:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }   
    /**/
    /**/            if(nine == 1)
    /**/            {
    /**/                switch(this->Get_Protected())
    /**/                {
    /**/                    case 0: {   strcpy(buffer, "Not set");  }   break;
    /**/                    case 1: {   strcpy(buffer, "Set");  }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Protection Bit:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/
    /**/            if(ten == 1)
    /**/            {
    /**/                switch(this->Get_Padding())
    /**/                {
    /**/                    case 0: {   strcpy(buffer, "Not set");  }   break;
    /**/                    case 1: {   strcpy(buffer, "Set");  }   break;
    /**/                }
    /**/                fprintf(PrinterPointer,"Padding Bit:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/
    /**/            if(eleven == 1)
    /**/            {   _itoa( this->Get_HeaderLocation(), buffer, 10 );
    /**/                fprintf(PrinterPointer,"Header Located:\t");
    /**/                fprintf(PrinterPointer,buffer);
    /**/                fprintf(PrinterPointer,"\n");
    /**/            }
    /**/            if(kickpaper == 1)
    /**/            fprintf(PrinterPointer, "\f");
    /**/
    /**/            fclose(PrinterPointer);
    /**/            return( 0 );
    /**/        }
    /**/    }
    /**/
    /* ========== Print_HeaderInformation ========== */
    

    Die is aber shice, ich mir zwar überlegt hatte dass ich NULL zurückbekomme wenn der Drucker nich da is, aber in real läuft das gar nicht. Deshlab will ich das jetzt über dieses Windows-Druckmenü machen. siehe Screenshot: http://mitglied.lycos.de/oxse/printer.JPG

    Weiss jemand was ich dafür alles brauche und was ich dabei beachten muss?

    [ Dieser Beitrag wurde am 22.06.2003 um 11:41 Uhr von Peter Piksa editiert. ]



  • HI
    Guck dir mal die Klasse CPrintDialog an.



  • Steht alles in VC++ 6 in 21 Tagen


Anmelden zum Antworten