打印 设置DPi不能成功

我是苦力 我是苦力 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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); */



执行上面的代码后,打印发现dpi值还是没有改变,对打印不是很了解,想要正确修改dpi等打印参数,要怎么做?

请高人指教,急。

问题解决,速结贴。
...全文
评论 13
收藏 已收藏
分享
返回顶部
我是苦力
VC/MFC 16,550 成员 421,606 内容