0

printPreviewDialogコントロールを使用したいと思います。richTextBox、button、printPreviewDialog、printDocumentの4つのコントロールを追加します。printDocument1の場合、次を追加します。

    private: System::Void printDocument1_PrintPage(System::Object^  sender, System::Drawing::Printing::PrintPageEventArgs^  e) {
               printDocument1->Print();
               e->Graphics->DrawString(richTextBox1->Text,richTextBox1->Font, Brushes::Black,(float)80,(float)80 );
    } 

ボタンの場合:

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    printPreviewDialog1->Document = printDocument1;
    printPreviewDialog1 -> ShowDialog();
     }

コードは大丈夫です、私はアプリケーションを構築して実行することができます。しかし、ボタンをクリックすると、次のようなものが表示されます。

http://www.screenr.com/fJr8

誰か助けてもらえますか?みんなありがとう!

4

1 に答える 1

0

PrintPageイベントハンドラーでPrintDocument::Print()を呼び出さないでください。そのPrint()メソッド呼び出しがPrintPageイベントハンドラーを再び呼び出すと、すべての地獄は失われます。このWebサイトの名前でプログラムがクラッシュするまでにはしばらく時間がかかります。おそらく、最初にハンドルの割り当てが不足するでしょう。

ステートメントを削除するだけで、何の役にも立ちません。

于 2012-06-08T12:30:38.330 に答える