MFC GDI+ 打印

// TODO: Add your control notification handler code here
//设置打印名称
DOCINFO docInfo;
ZeroMemory(&docInfo, sizeof(docInfo));
docInfo.cbSize = sizeof(docInfo);
docInfo.lpszDocName = "GdiplusPrint";

//打印机
PRINTDLG printDlg;
LPDEVMODE   lpDevMode;

ZeroMemory(&printDlg, sizeof(printDlg));
printDlg.lStructSize  = sizeof(printDlg);
printDlg.Flags  = PD_RETURNDC;

if (AfxGetApp()->GetPrinterDeviceDefaults(&printDlg)) //获得默认的打印机的信息)
{
lpDevMode = (LPDEVMODE)GlobalLock(printDlg.hDevMode);//锁定内存
if (lpDevMode)
{
lpDevMode->dmPaperSize = DMPAPER_A4;          //纸张大小
lpDevMode->dmOrientation = DMORIENT_LANDSCAPE;//横向打印
}
GlobalUnlock(printDlg.hDevMode); //解除锁定的内存
}
if(!PrintDlg(&printDlg)) return;  //获取需要的打印机

StartDoc(printDlg.hDC, &docInfo);
StartPage(printDlg.hDC);

//graphics 关联到打印机句柄 以下的操作就跟在界面GDI+绘图是完全一致的了
Graphics* graphics = new Graphics(printDlg.hDC); 
Pen* pen = new Pen(Color(255, 0, 0, 0));

EndPage(printDlg.hDC);
EndDoc(printDlg.hDC);
if(printDlg.hDevMode)
GlobalFree(printDlg.hDevMode);
if(printDlg.hDevNames)
GlobalFree(printDlg.hDevNames);
if(printDlg.hDC)
DeleteDC(printDlg.hDC);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值