如何在BCB中对打印页进行边距设置(200分)

  • 主题发起人 主题发起人 delphibcb
  • 开始时间 开始时间
DEVMODE *pDev;
LPPAGESETUPDLG mylp=new PAGESETUPDLG;
memset((void *)mylp,0,sizeof
(PAGESETUPDLG));
mylp->lStructSize=sizeof(PAGESETUPDLG);
mylp->hwndOwner=this->Handle;
mylp->Flags=PSD_RETURNDEFAULT;
PageSetupDlg( mylp );
if (mylp->hDevMode!=NULL)
{pDev=(DEVMODE*)GlobalLock(mylp->hDevMode);
pDev->dmPaperSize=OldPaperSize;
pDev->dmOrientation=OldOrientation;
mylp->rtMargin.left =OldLeft;
mylp->rtMargin.right =OldRight;
mylp->rtMargin.top =OldTop;
mylp->rtMargin.bottom=OldBottom;
GlobalUnlock(mylp->hDevMode);
mylp->Flags=PSD_MARGINS|PSD_INHUNDREDTHSOFMILLIMETERS;
if(PageSetupDlg(mylp)){
pDev=(DEVMODE *)GlobalLock(mylp->hDevMode);
OldPaperSize =pDev->dmPaperSize;
if(OldPaperSize>28)OldPaperSize=9;//A4
OldOrientation=pDev->dmOrientation;
OldLeft =mylp->rtMargin.left;
OldRight =mylp->rtMargin.right;
OldTop =mylp->rtMargin.top;
OldBottom =mylp->rtMargin.bottom;
FrmPrint->Q_Rep->Page->Orientation =OldOrientation-1;
FrmPrint->Q_Rep->Page->PaperSize=OldPaperSize;
FrmPrint->Q_Rep->Page->LeftMargin =OldLeft/100;
FrmPrint->Q_Rep->Page->RightMargin =OldRight/100;
FrmPrint->Q_Rep->Page->TopMargin =OldTop/100;
FrmPrint->Q_Rep->Page->BottomMargin=OldBottom/100;
GlobalUnlock(mylp->hDevMode);
}
GlobalFree(mylp->hDevMode);
}
delete mylp;
Q_Preview->PageNumber=1;
FrmPrint->Q_Rep->Prepare();
FrmPrint->Q_Rep->Preview();
 
我试一下
 
接受答案了.
 
后退
顶部