如何用代码设置默认打印机的纸张大小(mfc)
各位大侠:
我在编写打印程序时需要在程序中直接设置系统默认打印机的纸张大小,如下程序,程序是MFC框架的
在VIEW类的OnPreparePrinting中有如下代码:
BOOL CPDT10View::OnPreparePrinting(CPrintInfo* pInfo)
{
CPrintDialog pdlg(FALSE);
LPDEVMODE pdev=NULL;
pdlg.GetDefaults(); //取提默认打印机的配置
pdev=::GlobalLock(pdlg.GetDevMode());
if(pdev){
pdev->dmPaperSize=0;
pdev->dmPaperLength=1000;
pdev->dmPaperWidth=1000;
pdev->dmFields = mode->dmFields| DM_PAPERSIZE |DM_PAPERWIDTH| DM_PAPERLENGTH;
::GlobalUnlock(pDdlg.hDevMode);
AfxGetApp()->SelectPrinter(pdlg.hDevNames,pdlg.hDevMode);
}
return DoPreparePrinting(pInfo);
}
问题是这个代码在WINDOW2000下运行正确,纸张的大小也被设置为(1000,1000),
但是在WIN9X下没有反应纸张的大小没有修改。