具体步骤:
- 获得打印机DC(设备环境句柄).
- 开始打印(StartDoc).
- 开始一页(StartPage).
- 对DC进行绘图操作,就像往窗口上画图一样。
- 结束一页(EndPage).
- 结束打印(EndDoc)或转到第3步再开始新的一页.
- 删除打印创建的资源,如:释放DC(ReleaseDC)、删除字体、画笔、画刷之类的对象(DeleteObject)
第一步:
获得打印机DC(设备环境句柄)
可以用PrintDlg函数来获取DC。具体代码如下:
HDC hdc;
PRINTDLG printInfo;
ZeroMemory(&printInfo,sizeof(printInfo)); //清空该结构
printInfo.lStructSize = sizeof(printInfo);
printInfo.hwndOwner = 0;
printInfo.hDevMode = 0;
printInfo.hDevNames = 0;
printInfo.Flags = PD_RETURNDC | PD_RETURNDEFAULT | PD_ALLPAGES;
//PD_RETURNDC指定返回DC,PD_RETURNDEFAULT 指定不显示打印设置对话框直接返回默认设置
PrintDlg(&printInfo);//调用API拿出默认打印机
DWORD rst = CommDlgExtendedError();//看看出错没有
if(rst != 0)
{//出错了,清空标志再次调用API,此时就会弹出打印设置对话框供用户选择了
printInfo.Flags = 0;
PrintDlg(&printInfo);
}
h