16,472
社区成员
发帖
与我相关
我的任务
分享
LPDEVMODE lpDevMode;
CPrintDialog printDlg(FALSE);
// printDlg.m_nFlags = !PD_ALLPAGES | !PD_NOPAGENUMS | PD_PAGENUMS | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE |// PD_NOSELECTION;
printDlg.m_nFlags = PD_SELECTION | PD_USEDEVMODECOPIES;
if (printDlg.DoModal() == IDCANCEL)
return; // Get printer settings from user
dc.Attach(printDlg.GetPrinterDC());
if(AfxGetApp()->GetPrinterDeviceDefaults(&printDlg.m_pd)) //获得默认的打印机的信息
{
lpDevMode = (LPDEVMODE)GlobalLock(printDlg.m_pd.hDevMode);
GlobalUnlock(printDlg.m_pd.hDevMode);
//printDlg.m_pd.nMinPage = 1;
//printDlg.m_pd.nMaxPage = 10;
if(lpDevMode)
{
lpDevMode->dmPaperSize = DMPAPER_A4; //将打印纸设置为A4
lpDevMode->dmOrientation = DMORIENT_PORTRAIT; //将打印机设置为横向打印。
lpDevMode->dmPrintQuality = 1200 ; //修改打印分辨率为1200dpi 不成功
lpDevMode->dmYResolution = 1200; //
if(ChangeDisplaySettings(lpDevMode, CDS_RESET) != DISP_CHANGE_SUCCESSFUL)
{
MessageBox(L"Set dispaly settings error!"); //不会执行道这里
}
}
}
//下面的方法也不成功
/* LPDEVMODE lpDM = printDlg.GetDevMode();
lpDM->dmPrintQuality = 2400;
lpDM->dmYResolution = 2400;
lpDM->dmFields |= (DM_YRESOLUTION | DM_PRINTQUALITY);
dc.ResetDC(lpDM); */
最后解决了吗,我也遇到同样问题,想请教