1、获得系统默认打印机
CString DefaultDevName = TEXT("");
PRINTDLG pd;
LPDEVMODE lpDevMode=NULL;
AfxGetApp()->GetPrinterDeviceDefaults(&pd)
lpDevMode = (LPDEVMODE)GlobalLock(pd.hDevMode);
if (lpDevMode){
DefaultDevName = lpDevMode->dmDeviceName; //获得系统默认打印机名称
}
GlobalUnlock(pd.hDevMode);
2、创建Dc
HDC hdc = ::CreateDC(NULL, DefaultDevName, NULL, lpDevMode);
3、开始打印页面
DOCINFO di;
memset(&di, 0, sizeof(DOCINFO));
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = _T("订单打印");
di.lpszOutput = (LPTSTR)NULL;
di.fwType = 0;
StartDoc(hdc, &di) //开始打印作业,成功返回作业编号,失败小于或者等于0
StartPage(hdc) //大于0表示成功
4、获得页面大小
int xPage = ::GetDeviceCaps(hdc, HORZRES); //页面宽度(像素)
int yPage = ::GetDeviceCaps(hdc, VERTRES); //页面高度(像素)
5、绘制页面
使用TextOut SetPixel等绘图
6、结束打印
EndPage(hdc)
EndDoc(hdc)