hur.cn - 华软网

 热门搜索

不知如何设置打印方向,请高手帮忙。

  作者:未知    来源:网络    更新时间:2011/6/11
通过以下代码打印图片,不知如何设置打印方向,请高手帮忙。
BOOL PrintImage(Image* pim) 
{
if (pim == NULL)
return FALSE;
 
DWORD   size = 0;
CString strName;

GetDefaultPrinter(NULL, &size);
GetDefaultPrinter(strName.GetBuffer(size), &size);
strName.ReleaseBuffer();


if (strName.IsEmpty())
{
AfxMessageBox(_T("获取默认打印机失败."));
return FALSE;
}


HDC     hdcPrint; 
HANDLE  printerHandle; 

DOCINFO docInfo; 
ZeroMemory(&docInfo, sizeof(docInfo)); 
docInfo.cbSize = sizeof(docInfo); 
docInfo.lpszDocName = "GdiplusPrint"; 


// Get a device context for the printer. 
hdcPrint = CreateDC(NULL, strName, NULL, NULL); 
// Get a printer handle. 
OpenPrinter(strName.GetBuffer(strName.GetLength()), &printerHandle, NULL);
strName.ReleaseBuffer();

StartDoc(hdcPrint, &docInfo); 
StartPage(hdcPrint); 

{
Graphics grp(hdcPrint);
grp.DrawImage(pim, 0, 0);
}

EndPage(hdcPrint); 
EndDoc(hdcPrint); 
ClosePrinter(printerHandle); 
DeleteDC(hdcPrint); 

return TRUE;
}
---华软 网友回答---
用CPageSetupDialog对话框设置就可以了
//页面设置对话框
CPageSetupDialog psd(PSD_MARGINS | PSD_DEFAULTMINMARGINS);
if (psd.DoModal() != IDOK)
return;
LPDEVMODE  pDevMode; 
pDevMode = psd.GetDevMode();
dc.ResetDC(pDevMode);
---华软网友回复---
需要使用默认打印机打印,不显示打印设置窗口,改变打印方向。
---华软网友回复---
PRINTER_INFO_2  pi;

pi.pDevMode->dmOrientation = 
  竖: DMORIENT_PORTRAIT
  横: DMORIENT_LANDSCAPE

SetPrinter()

---华软网友回复---
引用 3 楼 sunshine_msdn 的回复:
PRINTER_INFO_2  pi;

pi.pDevMode->dmOrientation = 
  竖: DMORIENT_PORTRAIT
  横: DMORIENT_LANDSCAPE

SetPrinter()


If you use SetPrinter to modify the default DEVMODE structure for a printer (globally setting the printer defaults), you must first call the DocumentProperties function to validate the DEVMODE structure.

     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。