这个问题已经有人提问过了,但是他自己解决了,现在我遇到这个问题了,不知道怎么解决了,在OnDraw函数里绘制报表实现了类似的功能,但是这个问题没解决总觉得不舒服

我需要打印一个CFormView,按照在网上的方法,实现了打印预览,但是打印出来的是空白,没有任何内容。
http://www.codeguru.com/cpp/w-p/printing/article.php/c2945/

下面是代码。
添加成员变量:
CDC * m_pMemDC;  //A memory device context compatible with our printer DC.
CRect m_rect;    //To hold the dimensions of our printing area while scaling.
CBitmap * m_pBm; //Capture the screen image as a Bitmap
在构造函数中添加
m_pMemDC = new CDC ;
m_pBm = new CBitmap;
在析构函数中添加
delete m_pMemDC; //CLEAN UP OUR VARIABLES
delete m_pBm;
重载OnBeginPrinting函数:
if (m_pMemDC->GetSafeHdc()) m_pMemDC->DeleteDC();
m_pMemDC->CreateCompatibleDC(pDC);

CClientDC dc(this);
CRect rect;
GetClientRect(rect);
m_pMemDC->SetMapMode(MM_ANISOTROPIC);
m_pMemDC->SetWindowExt(dc.GetDeviceCaps(LOGPIXELSX),dc.GetDeviceCaps(LOGPIXELSY));
m_pMemDC->SetViewportExt(m_pMemDC->GetDeviceCaps(LOGPIXELSX),m_pMemDC->GetDeviceCaps(LOGPIXELSY));

if (m_pBm->GetSafeHandle()) m_pBm->DeleteObject();
m_pBm->CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
m_pMemDC->SelectObject(m_pBm);
dc.DPtoLP(rect); //Convert to Logical Coordinates
m_rect = rect;  //Save Logical Coordinates
m_pMemDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);

重载OnPrint函数
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(m_pMemDC->GetDeviceCaps(LOGPIXELSX),m_pMemDC->GetDeviceCaps(LOGPIXELSY));
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),pDC->GetDeviceCaps(LOGPIXELSY));
pDC->StretchBlt(0,0,m_rect.Width(),m_rect.Height(),m_pMemDC,0,0,m_rect.Width(),m_rect.Height(),SRCCOPY);

测试后,发现打印预览正常,但是打印出来的是一片空白。
后来找了些资料说有些打印机是不支持位图传送的,也就是说不支持bitblt和stretchblt函数,也就是说这种方法并不能成功。

请问除了这个方法还有其他的方法吗,请各位高手指教。

http://www.codeproject.com/KB/printing/printingtricksandtips.aspx

这个链接据说是解决的方法,但是看了半天,没搞明白。。。

CFormView实现了打印预览,但是打印室空白相关推荐

  1. 在C#里实现DATAGRID的打印预览和打印

    作者Blog:http://blog.csdn.net/qieyj/ 很多人都在论坛里问,如何实现DATAGRID的打印预览和打印,现在我就把这方面的源代码告诉大家.这段代码也花费了我1个晚上的时间, ...

  2. html 打印预览跟实际不一样,打印预览和打印出来的不一样(总结自己遇到的问题和解决方法)...

    1.打印预览和打印出来的不一样(表格里面的字出了表格)? 答:我在打监理月报时,经历的一个案例,其实这是因为你设置了居中,结果呢,表格进了下一页,所以这时有可能字就出了表格,只要将此单元格选定,然后选 ...

  3. 在网页中调用打印预览及打印设置

    在网页中调用打印预览及打印设置 以下内容为程序代码: <OBJECT  id=WB classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 heig ...

  4. java使用Bartender模板btw格式打印预览和打印SDK

    java使用Bartender模板btw格式打印预览和打印SDK 下载 bartender-printer-sdk.jar 支持模板转图像 支持自定义纸张大小 支持局域网打印机打印 支持模板数据源模式 ...

  5. 网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距

    1.控制"纵打". 横打"和"页面的边距 (1) <object  id="factory"  style="display ...

  6. java 打印预览_java打印和打印预览机制实例代码

    代码如下: import java.awt.basicstroke; import java.awt.borderlayout; import java.awt.color; import java. ...

  7. qt tableb view 打印预览和打印的问题 个人解决办法

    好了长话短说  因为tableview 不提供print 函数 ,所以 要实现打印现在基本是基于 两种  一种是利用render 函数    一种是利用 html 来实现    我个人因为在用rend ...

  8. word中插入“分节符-下一页”后,打印预览会多出空白页的解决方法

    介绍 word排版好不容易弄好之后分节符产生的空白会使打印结果非常混乱,无论是采用打印还是导出pdf.以下根据网上查找介绍两种方法. 其中第一种方法参考百度,实际操作比较复杂: 第二种方法是我自己在软 ...

  9. C# 打印预览 PrintDocument打印、打印预览

    #region 打印预览#region 变量 常量//以下用户可自定义 //当前要打印文本的字体及字号 private const int HeadHeight = 40;private static ...

  10. chrome html 打印预览,Chrome打印预览错误

    我想打印一个html页面.html页面是由我开发的,这个页面可以用mozilla打印,即. 在Chrome中:当按下CTRL + P时会弹出预览窗口,但它会显示:"打印预览失败", ...

最新文章

  1. Java ByteArrayOutputStream size()方法与示例
  2. JEECG 缓存用法
  3. linux环境下qt实验报告,青岛科技大学实验报告(实验一).doc
  4. 大数据_Flink_流式处理_简介_流数处理的发展演变---Flink工作笔记0004
  5. 直播预告 | Rainbond与Service Mesh微服务架构
  6. 20151212Jquery 工具函数代码备份
  7. jetty jndi mysql_jetty配置jndi数据源
  8. C语言易错知识点总结
  9. 太极 免ROOT使用Xposed模块
  10. 打造个性QQ,适合网吧做自己安全的QQ
  11. 小鹤双拼鹤形教程-by小鹤双拼输入法QQ群友-45℃的回忆
  12. ie测试兼容的软件,IE系列浏览器兼容性测试点整理
  13. Linux终端程序用c语言实现改变输出的字的颜色 (转)
  14. day09-面向对象综合训练综合练习
  15. C++prime读书笔记(二)C++标准库:IO、容器、泛型算法、动态内存
  16. Android OrangePi 4G IOT(四) - MTK LK分析
  17. fzu-1607-Greedy division
  18. 「可解释知识图谱推理」最新方法综述
  19. WiFi探针的工作原理及采集的数据?
  20. C语言:左旋数组“abcdef”==“cdefab”

热门文章

  1. maka做出好设计_MAKA做出好设计
  2. NLP入门(1)-词典分词方法及实战
  3. [Java故障排除指南- JDK11-学习笔记]-1-Java 进行故障排除前的一些准备
  4. 物联网(loT) 学习日志
  5. uni-app图片本地路径/网络路径转base64流 压缩
  6. C++ notes for beginners
  7. 做线上商城怎么维护老客户呢?
  8. 蓝桥杯例题练习(入门)--正十二边形和正三角形的组合图形绘制
  9. ubuntu安装好后需要做的几件小事_总结帖
  10. 如何转换磁盘的MBR和GPT格式