CDC IsPrint
2016-03-15 13:39
274 查看
IsPrinting 确定正在使用的设备上下文是否用于打印
以前我们进行的输出工作都是向屏幕上的一块窗口区域中进行,而打印则是打印机向打印纸上输出一些东西。的确,这两者之间有很大的相似性,比如,它们都能输出文本,也都能输出一些图形。正是基于这些相似性,在 Windows 中,用设备上下文将它们之间的共性统一起来了。你在进行打印和输出时,你可以用相同的输出函数(如TextOut)来往屏幕或打印纸上输出。
Windows 会在不同的情况下,将输出联系到相应的设备上。但是这并不意味着我们可以完全不考虑这两者之间的差别,而认为我们只要实现了屏幕输出功能就自动地实现了相应的打印功能。毕竟,它们之间有一些无法统一的差别:打印时,有页和分页的概念,即数据或输出是有条理地组织在一张张有一定大小的纸上;而屏幕输出时,则没有页和分页的功能,同时,可以认为屏幕输出的输出区域是没有大小限制的,超出窗口范围的,我们可以用滚动条来滚动。
CView 有这样三个虚拟函数:OnPaint(),OnDraw(CDC *pDC),OnPrint()。OnPaint()是当视类窗口需要在屏幕上输出时被调用,负责完成窗口的屏幕输出显示工作;OnPrint()是当打印一页时被调用,负责完成向某页打印纸上打印。这两个函数的缺省实现中包含了对OnDraw(CDC
*pDC)的调用。我们以前的程序中,并不考虑打印问题,所以我们被告之在OnDraw 中考虑如何完成屏幕输出工作。但现在不一样了,我们在OnDraw 中添加代码时,必须小心这有可能是在进行打印,并不是向一个窗口中输出。如果这两者在程序中不能统一,就必须分开考虑。分分开考虑有两种方法:一是分别在OnPaint和OnPrint
中完成屏幕输出和打印输出工作,而不必依赖于OnDraw。二是在OnDraw 中,我们可以调用pDC_>IsPrinting() 来识别目前是在进行哪种输出工作。如果是在进行打印,pDC_>IsPrinting()返回true。这样我们就可以在OnDraw
中区别对待了。
相关文章推荐
- spring介绍
- java实现斐波那契数列两种写法
- 抽象类和接口类
- Failed to connect to database. This release of the GeoDatabase is either invalid or out of date
- 加盐哈希
- linux sudo 命令
- linux下shell显示-bash-4.1#不显示路径解决方法
- 流域水文模拟
- 【数据结构】重新面对数据结构
- 关于.NET前后台提示框的那点事
- 如何扩展大规模Web网站的性能?
- [Songqw.Net 基础]WPF实现简单的插件化开发
- java set和get方法的使用
- leetcode 55. Jump Game
- asp.net mvc+angularjs+web api单页应用
- Darkstat:基于web的网络监控工具
- Kotlin:Android世界的Swift
- PHP中header头设置Cookie与内置setCookie的区别
- JAVA_java的位运算符详解实例(与& 非~ 或| 异或^)
- mac 命令行 npm安装bower失败