首页 | 旅游 | 健康 | 时尚 | 下载 | 论坛 | 图文 | 专题 | 地图
资讯 IT人 电脑入门 操作系统 上网 办公 技巧 硬件 软件 网络 图像 多媒体 程序 数据库 网页制作 网站开发 网游 安全 加密 企业

在C++Builder中自定义预览窗口

巧巧读书 2007-10-09   技术论坛

  4.在Form1中添加更新提示代码:

  void TForm1::RefreshPanel()
{ //更新提示信息

Panel2->Caption=“第”+IntToStr(Form1->QRPreview1->PageNumber)+“页”+“共” + IntToStr(Form2->QuickRep1->PageNumber)+“页”;
}

  5.从Form1中选择QRPreview1,在其事件中选择OnProgressUpdate,输入以下代码:

  //显示报表装载进度

  ProgressBar1->Position=Progress;
RefreshPanel();

  6.打印:

  Form2->QuickRep1->Print();

  7.打印设置:

  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;
Form2->QuickRep1->Page->Orientation =OldOrientation-1;
Form2->QuickRep1->Page->PaperSize 
=OldPaperSize;
Form2->QuickRep1->Page->LeftMargin =OldLeft/100;
Form2->QuickRep1->Page->RightMargin =OldRight/100;
Form2->QuickRep1->Page->TopMargin =OldTop/100;
Form2->QuickRep1->Page->Bottom
Margin=OldBottom/100;
  GlobalUnlock(mylp->hDevMode);
}
  GlobalFree(mylp->hDevMode);
  }
delete mylp;
QRPreview1->PageNumber=1;
Form2->QuickRep1->Prepare();
Form2->QuickRep1->Preview();

本类最热图文
巧巧读书图文推荐
Google
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章