文件名称:输出文字-em78p153 c语言范例
文件大小:5.55MB
文件格式:PDF
更新时间:2024-06-22 11:40:59
Windows
第四章 输出文字 在前一章,您看到了一个简单的Windows 98程序,它在窗口*,或者更准确地说,在显示 区域*显示一行文字。正如我们学到的,显示区域是整个应用程序窗口中未被标题栏、窗口边框, 以及可选的菜单列、工具列、状态列和滚动条占据的部分。简而言之,显示区域是窗口中可以由程 序任意书写和传递视觉信息的部分。 对于程序的显示区域,您几乎可以为所欲为,只不过您不能假定窗口大小是某一特定尺寸,或 者在程序执行时其大小会保持不变。如果您不熟悉图形窗口环境的程序设计,这些限制可能会使您 感到惊讶:不能再假设屏幕上的一行文字一定有80个字符了。您的程序必须与其它Windows程序 共享视讯显示器。Windows使用者控制程序窗口在屏幕上显示的方式。尽管可以建立固定大小的窗 口(这对于计算器之类的应用是合理的),但在大多数情况下,使用者应该能够改变应用程序窗口 的大小。您的程序必须能够接受指定给它的大小,并且合理地利用这一空间。 这有两种可能的情况。一种可能是,程序只有仅能显示「hello」的显示区域;还有另一种可能, 即程序在一个大屏幕、高分辨率的系统上执行,其显示区域大得足以显示两整页文字。灵活地处理 这两种极端是Windows程序设计的要点之一。 这一章,我们将讲述程序在显示区域显示信息的方式,但比上一章说明的显示方式更加复杂。 当程序在显示区域显示文字或图形时,它经常要「绘制」它的显示区域。本章着重讲述绘制的方法。 尽管Windows为显示图形提供了强大的图形设备接口(GDI)函数,但在这一章中,我只介绍 简单文字行的显示。我也将忽略Windows能够使用的不同字体外形及字体大小,仅使用Windows 的内定系统字体。这看起来似乎是一种限制,其实不然,本章涉及和解决的问题适用于所有Windows 程序设计。在混合显示文字和图形时,Windows内定字体的字符大小通常决定了图形的尺寸。 本章表面上是讨论绘图的方法,实际上是讨论与设备无关的程序设计基础。Windows程序只能 对显示区域大小甚至字符的大小做很少的假定,相反地,必须使用Windows提供的功能来取得关于 程序执行环境的信息。 绘制和更新 在文字模式环境下,程序可以在显示器的任意部分输出,程序输出到屏幕上的内容会停留在原 处,不会神秘地消失。因此,程序可以丢掉重新生成屏幕显示时所需的信息。 在Windows中,只能在窗口的显示区域绘制文字和图形,而且不能确保在显示区域内显示的内 容会一直保留到程序下一次有意地改写它时还保留在那里。例如,使用者可能会在屏幕上移动另一 个程序的窗口,这样就可能覆盖您的应用程序窗口的一部分。Windows不会保存您的窗口中被其它 程序覆盖的区域,当程序移开后,Windows会要求您的程序更新显示区域的这个部分。 Windows是一个消息驱动系统。它通过把消息投入应用程序消息队列中或者把消息发送给合适 的窗口消息处理程序,将发生的各种事件通知给应用程序。Windows通过发送WM_PAINT消息通 知窗口消息处理程序,窗口的部分显示区域需要绘制。 WM_PAINT消息