说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

怎么样才能调用PrintDialog组件打印,如要打印Memo组件中的文字。

编辑:说三道四文库 发布时间:2017-05-29 03:52
HTML文档下载 WORD文档下载 PDF文档下载
这里是打印代码,不错的哦:
void __fastcall TMainForm::Print1Click(TObject *Sender)
{
  Screen->Cursor = crHourGlass;
  Application->ProcessMessages();

  TList* pageList = new TList;
  int width = GetDeviceCaps(Printer()->Handle, PHYSICALWIDTH);
  int height = GetDeviceCaps(Printer()->Handle, PHYSICALHEIGHT);
  int logPixelsX = GetDeviceCaps(Printer()->Handle, LOGPIXELSX);
  int logPixelsY = GetDeviceCaps(Printer()->Handle, LOGPIXELSY);
  int xOffset = GetDeviceCaps(Printer()->Handle, PHYSICALOFFSETX);
  int yOffset = GetDeviceCaps(Printer()->Handle, PHYSICALOFFSETY);

  SendMessage(RichEdit->Handle, EM_FORMATRANGE, 0, 0);
  FORMATRANGE fr;
  memset(&fr, 0, sizeof(fr));
  fr.hdc = Printer()->Handle;
  fr.hdcTarget = Printer()->Handle;
  SetMapMode(fr.hdc, MM_TEXT);

  TRect pageRect;
  pageRect.left = 0;
  pageRect.top = 0;
  pageRect.right = MulDiv(width - xOffset, 1440, logPixelsX);
  pageRect.bottom = MulDiv(height - yOffset, 1440, logPixelsY);

  TRect rendRect;
  rendRect.left = pageRect.left + (Margins->Left * 1440) - xOffset;
  rendRect.top = pageRect.top + (Margins->Top * 1440) - yOffset;
  rendRect.right = pageRect.right - (Margins->Right * 1440);
  rendRect.bottom = pageRect.bottom - (Margins->Bottom * 1440);

  fr.chrg.cpMin = 0;
  fr.chrg.cpMax = -1;
  int textLen = RichEdit->Text.Length();
  do {
    fr.rc = rendRect;
    fr.rcPage = pageRect;
    TPrinterPage* page = new TPrinterPage;
    page->StartPos = fr.chrg.cpMin;
    fr.chrg.cpMin = SendMessage(
      RichEdit->Handle, EM_FORMATRANGE, false, (int)&fr);
    page->EndPos = fr.chrg.cpMin - 1;
    pageList->Add(page);
  } while (fr.chrg.cpMin != -1 && fr.chrg.cpMin < textLen);

  SendMessage(RichEdit->Handle, EM_FORMATRANGE, 0, 0);

  PrintDialog->MaxPage = pageList->Count;
  if (!PrintDialog->Execute()) {
    Screen->Cursor = crDefault;
    return;
  }
  Printer()->Title = "Rich Edit Printing Example " +
    ExtractFileName(OpenDialog->FileName);
  int startPage, endPage;
  if (PrintDialog->PrintRange == prPageNums) {
    startPage = PrintDialog->FromPage - 1;
    endPage = PrintDialog->ToPage - 1;
  }
  else {
    startPage = 0;
    endPage = pageList->Count - 1;
  }

  Screen->Cursor = crHourGlass;
  Application->ProcessMessages();

  textLen = RichEdit->Text.Length();
  Printer()->BeginDoc();
  SetMapMode(Printer()->Handle, MM_TEXT);
  fr.hdc = Printer()->Handle;
  fr.hdcTarget = Printer()->Handle;
  int pageCount = startPage;
  do {
    fr.rc = rendRect;
    fr.rcPage = pageRect;
    TPrinterPage* pp = (TPrinterPage*)pageList->Items[pageCount];
    fr.chrg.cpMin = pp->StartPos;
    fr.chrg.cpMax = pp->EndPos;
    Printer()->NewPage();
    SendMessage(RichEdit->Handle, EM_FORMATRANGE, true, (int)&fr);
  } while (++pageCount < endPage + 1);

  SendMessage(RichEdit->Handle, EM_FORMATRANGE, 0, 0);
  Printer()->EndDoc();

  for (int i=0;i<pageList->Count;i++)
    delete (TPrinterPage*)pageList->Items[i];
  delete pageList;
  Screen->Cursor = crDefault;
}
//---------------------------------------------------------------------------
Docker已扎根新一代PaaS 三星或发布首款头戴式VR设备Project Moonlight 英特尔亚太研发总经理何京翔:数据化时代背后的智慧 云络网络科技CEO Steve Mushero:游戏行业的云运维 腾讯游戏运营管理中心总监刘栖铜:腾讯游戏云的理想与实践 一号专车产品总监曹景辉:LBS应用仍有无限的创新空间 昆仑游戏总裁张益豪:做好中国游戏的海外代理 游族首席运营官陈礼标:重点打造全球化IP 我是怎么利用微信月收入三万以上的! 我的Y Combinator黑客马拉松之感! 最炫HTML5 JavaScript框架Famo.us融资2500万美元 看板先驱David J. Anderson:看板方法拉动互联网时代敏捷变革 《近匠》增强现实开发团队LegendTech:AR技术现已加入15元豪华午餐 微软新技术:简单修改,手机摄像头摇身变3D深度相机 Black Hat USA安全隐患盘点及黑客奥斯卡颁奖 MDCC免费展位报名火热!数量有限,征集进行中 迪游信息科技CEO张晓雷:中日游戏面面观 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉! 微信公众平台开发——如何保证access_token长期有效? 拼的就是速度!超快HTML5 2D渲染引擎Pixi.js 一周消息树:百度“涉黄”遭警告,网盘内容审核的四种方式 微信开发商现状调查:接口限制成主要困扰 行业需求多样是最大难点 小米:海外扩张需谨慎,信息安全或成最大掣肘 AMD FX系荣耀归来 或成大众新宠! 脑洞大开:《80天环游地球》同名游戏诞生记 2014微信开发者大会 最后30个参会名额! 林仕鼎创业产品“云校”正式上线:让教育个性化、多元化、均衡化 14岁少年开发者:伍兴云的智能家居“梦” Xcode 6 Beta 6发布闹乌龙,着重改进Swift语言 当API遇到云平台,开发者面临的新抉择! 《近匠》欧朋流量宝,工具类应用开发之道 请教:取CppWebBrowser中的page source 为什么我提交后的页面却又Dreamweaver打开了提交后的页面? 我用web程序生成了word的document的对象,怎么通过网页输出word文件?不是保存到硬盘,而是response到用户? 一道怪题,欢迎讨论 谁知道关于调整麦克风音量的API函数???请叙述详细一些,紧急,谢谢!!!!!! 发布一个串口调试程序,若用的着请进,急急急!!! 请问有那些关于vc界面的书呢? 请问大家硬盘是怎么装的,电路板朝上还是下,或者是斜着的?对硬盘有没有影响?up有分 关于动态SQL的问题,请各位大虾帮忙,急急.............. 为什么触发器只触发最后一条记录?(付触发器) 怎样查找一个时间范围的数据? 在Workflow流程中,如何实现域值的改变? 访问该页者有分!!!!!!!!!!!!!! 数据库问题!急用! 为什么触发器只触发最后一条记录?(付触发器) 我用web程序生成了word的document的对象,怎么通过网页输出word文件?不是保存到 俯卧撑次数首次超40,放分! 一个使用motoSDK的问题请较! 一个奇怪的问题?? 我用web程序生成了word的document的对象,怎么通过网页输出word文件?不是保存到硬盘,而是response到用户? 一个非常初级的问题。 中国积极培养电脑“网络战士” ---泰晤士报星期刊 sco unix 高手请进 我再放!! 求救!!!!!!一个SQL的问题 为什么用中断1A获取网卡的配置空间时,在偏移量10h处只能获取mac地址的前8位,后4位无法获取??? 我又放!! 存储过程的高级应用问题,急用! 在combobox中禁止某些字符输入,为什么不成功? 我没完没了的放!! 怎么把数字39显示成0039,同理9显示成0009,多谢指教(在线等待) 大虾:如何用ADO向Access2000的BLOB字段中放图像文件?请赐教!... ASP.NET 调试问题 pb 有没有中文版呀`~~或者是汉化包呀`~ 如何做程序组安装盘???---在线等候!!! 存储过程返回值判断出错,大家看看是存储过程出错还是asp.net代码出错,给300分!! weblogic怎么老跟sqlserver连不上? 请各位前辈帮帮我。怎样能收到外部发进来的邮件?? 有在web上显示数据库中图片成功的吗?是sybase数据库。我们交流一下。 是谁干的站出来!!! 电子书籍请教!!! 哪里有InterBase6.0 Server下载?? recordset、connection等的释放内存问题:是不是每用一次都要set =nothing? Analysis server 2000的Bug ? 寻找SQL Server系统存贮过程和函数 各位DX,什么地方有windows 2000 platform sdk 下载啊?!!!!! 看了C++ language programmer (特别版) PopupMenu为什么单击右键不能出现弹出菜单呢? 各大虾好,我是一名小鸟希望快快长大,首先我要搭一个家,请问jsp调试环境如何建立?请详细一些好吗?谢谢 如何在MDI中进行静态拆分? 这是什么问题????非常急!!! 拉瓦锡通过实验证明得出结论氧气占空气的1/5,但在我们的实验中,为什么测得的氧气分数大于1\5?顺便还可以讲一下为什么测得的氧气分数会小于1\5? 食物在体外燃烧与体外氧气的过程完全相同 对还是错 同向比例运算放大器和反相比例运算放大器分别用在什么场合? 磁性液位计老是出现假液位是何故啊电厂的氨站磁性液位计老是出现假液位,氨灌实际液位是1.9M,好久未用氨气天天只是维护状态,在常温下频繁出现假液位现象,一天好几次请问何故? 体外燃烧和体内氧化的化学本质一致是什么意思 运放 运算放大器 疑问如图1:R1是限流电阻吧,也就是说它的唯一作用就是限流是不是?那我可不可以把R1不要,换成下拉电阻,让大部分电流从下拉电阻流过,有什么优缺点?第二个问题如图2 输 焦性没食子酸的碱性溶液是酸性还是碱性,我想既然是碱性溶液,为何答案说是因为在这种强酸环境下碳酸钡会溶 保证食物在体外能够充分燃烧的条件()? 全校师生和校长都参加了我们的活动.(修改病句) 化工铜洗岗位液位计产生假液位的原因是什么 怎么太阳燃烧不尽,天体外还有啥东西啊? 修改病句:通过这次为王树灾区捐款捐物活动,让我领会了“同舟共济”的精神内涵. 磁性浮子液位计为什么会造成假液位 什么东西可以自燃烧 全校师生和校长一起参加了开学典礼活动 改病句全校师生一起参加了开学典礼活动 改病句中活动二字要不要去掉 如图所示在碱性溶液中可……第二题, 减法运算放大器后输出负电压与正电压交替出现,有什么方法可以将负电压取绝对值,而正电压还是正的呢? 制定汉语拼音方案的原则帮我归纳一下 将盛有和混合气体的试管倒立于水槽中,经过足够长的时间后,溶液充满整个试管,则原混合气体中O2和NO的体积比是多少?A.1比3 B.1比4 C.3比4 D.3比1 什么是生物多样性的基础 使用《汉语拼音方案》拼写词语的标准是什么? 看到有很多人问过这个问题,因为意思实在太多了~看时看到一篇文章叫(貌似是这个名字- -|||)这里的RP是什么意思?"让我的RP爆长吧!"超级RP的图啊~ TH150一体化里氏硬度计天津哪家有代理呀? 国家与1996年颁布什么,规定了用【汉语拼音方案】拼写现代汉语的规则 RP是啥意思? 王选院士主持研制的“汉字激光照排系统”属于第()次信息技术革命.A、二 B、三 C、四 D、五 运算放大器的计算图中蓝色圈中是一个过流保护的电路,从A短进入运放的是一个从负载出来得大概0——1.5A的电流,从B端输出一个电量接到单片机的A/D转换上,谁会计算A端电量和B端电量的关系 同上他们总是说什么很RP 韶关哪里有丁烷气供应?充打火机的丁烷气. 求计算一个运算放大器VOUT和输出的关系,麻烦写出计算过程 火的本质是什么?火焰有的能看见,有的看不见,那些分子到底是些什么物质?火和光有什么关系?火的组成成分?由哪些离子组成? 王选的激光照排是处于信息技术发展的第几次革命时代 怎样计算运算放大器的倍数如图,我想问下,这两个运算放大器如何计算它的放大倍数,第一个运放上100pf电容有何作用,这个电路有什么特点. “火”的本质是什么?“金”,“木”,“水”,“土”分别有对应的物质,“火”是什么物质? 丁烷气那有? 三江源指的是什么?发源于什么地方? 火的本质是什么?它是由什么构成的? 王选是著名科学家,主持开发我国计算机汉字激光照排系统和_? 计算运算放大器放大倍数为什么要+1最近自学电子,运算放大器放大倍数AU=1+Rf/R1 为什么要加1,是不是只要是运算放大器都是这样计算.还有个问题R2//R4 R2//R4是计算公式里的 ,那是不是每个运算 除了酸溶液可以跟碱溶液反应,还有说明可以和碱反应 王选是谁呀?是那个创造汉字激光照排系统的人吗? 柳树长出了嫩芽(改写成拟人句) 灾区人民自力更生,艰苦奋斗的精神.(修改病句) 运算放大器是什么 王选激光照排的意义 汉字信息处理过程分为汉字(),加工处理和输入三个阶段谢谢了, 建筑施工管道工部分应注意之 直径多少米以下的管可采用溜绳法下管? 什么叫运算放大器? 三江源指的是哪三江? 力学土木工程高手进、平面汇交力系有几个平衡方程可以求几个未知量,还有平面力偶系和平面一般力系呢 某工厂为了车辆进出的安全,在厂门口安装了广电控制警铃,从汽车车头驶到厂门警铃响,知道车位驶离长门时停止.一辆大货车以3.6km/h的速度驶出厂门,警铃响了6s,求该货车车长多少? 完整解答 关于运算放大器谁能帮我看下这个差分放大电路,它是怎么放大的 一个液位计可接两个液位显示表吗?对测量的准确性有没有影响? 某工厂为了车辆进出的安全,在厂门口安装了光电控制警铃,从汽车车头驶到厂门到车尾驶离厂门的一段时间内,警铃都会发出信号.一辆大货车以5KM/H的速度驶出厂门,警铃响了6S,问该辆车有多长 三江源和三江并流分别指什么有地图最好 拉瓦锡通过实验得出的结论是氧气约占空气总体积的1/5,而在我们的实验中,为什么气体减少的体积小于1/5? 在某厂门口安装了光电控制警铃,从汽车车头驶到厂门口到车尾驶离厂门的一段时间内警铃都会发出信号.一辆大货车以5km/h的速度驶出厂门,警铃响了6秒,则该辆车有多长 三江源的三江指.什么 请问最早通过实验得出空气是由氧气组成的这一结论的科学家是A道尔顿B拉瓦锡C普利斯特里D汤姆生 打雷的时候为什么车的警铃会响!这一段时间雷雨时候特别多,每次打雷的时候,我们公司的那些车就一个接一个的响,想问一下为什么 三江源再哪?指那三江?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘