Backgroud:GDI Print API
を介して印刷しようとしていますが、次のようになります。
StartDoc(hDC,&docinfo)
foreach page in page_buf
StartPage(hDC)
/* write the page to printer DC */
EndPage(hDC)
EndDoc(hDC)
問題:
印刷中に通知領域のアイコンが表示され、それをクリックすると、指定したプリンターでの現在の印刷ジョブを示す小さなウィンドウが表示されます。
印刷ジョブを右クリックしてを選択するCancel
と、印刷ジョブがキャンセルされます。しかし、私のアプリケーションは、すべてのページが処理されるまでプリンターDCにデータを送信し続け、Deleting - Spooling
終了する前にステータスが表示され続けます。
私が欲しいのは、それをキャンセルすることを選択した直後に印刷手順を停止することです。
私が試したこと:
1。最初に、ジョブをキャンセルするとデバイスのコンテンツが無効になると思い(もちろんそうではありません)、との戻り値を調べてみましStartPage
たEndPage
。それから、印刷ジョブのキャンセル後、両方とも失敗しないことがわかりました。
2.私も試しSetAbortProc
てDocumentEvent
みましたが、それらが私が望むものではないことがわかりました。
しかし、印刷ジョブがキャンセルされたときにアプリケーションを示すメカニズムがあると思います。誰かが助けてくれれば幸いです。