地说,在显示区域中央显示一行文字。正如我们学到的,显示.PDFVIP

  • 5
  • 0
  • 约6.63万字
  • 约 63页
  • 2017-12-23 发布于天津
  • 举报

地说,在显示区域中央显示一行文字。正如我们学到的,显示.PDF

地说,在显示区域中央显示一行文字。正如我们学到的,显示.PDF

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

文档评论(0)

1亿VIP精品文档

相关文档