// 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);
//设置打印名称
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);