背景:
现在我想通过打印GDI打印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
,发现他们是不是我想要的。
不过,我想应当有某种机制来表明我的应用程序时,取消打印作业。 如果有人试图帮助我们将不胜感激。