我来试试看。
这段代码大概可以了。 PRINTDLG pd;
LPDEVMODE lpDev;
CPrintDialog printDlg(FALSE); if(AfxGetApp()->GetPrinterDeviceDefaults(&pd))
{
BYTE *lpCopy;
lpCopy=(BYTE*)GlobalLock(pd.hDevMode);
lpDev=(LPDEVMODE)lpCopy;
lpDev->dmPaperSize=DMPAPER_A4;//用A4纸
lpDev->dmOrientation=2;//横打
GlobalUnlock(pd.hDevMode);
} printDlg.m_pd.hDevMode = lpDev;
//利用CPrintDialog 生成打印机设备环境
if (printDlg.DoModal() == IDCANCEL) 
         // Get printer settings from user 让用户选择打印纸张等
return;

解决方案 »

  1.   

    这个问题,我终于解决了,能不能给自己得分?呵呵方法是这样的,首先,要确定安装的打印机是否有自定义纸张大小的功能,自定义的纸张大小的范围是多少。接着,点开始->设置->打印机,出来打印机的窗口后,在窗口上右击在POP菜单中选“服务器属性” ,在格式标签页里新建格式。当然,新格式的大小受限于你的打印的自定义纸张大小。最后在报表里选择相应的打印机就可以选择刚刚新建的纸张了。