获取和释放设备描述表句柄的函数分类
把一部分内存视为虚拟设备,
对内存中的数据(如位图)直
接操作
CreateCompatibleDC 和
DeleteDC
WM_PAINT:
某个应用程序的窗口上面可能被对话框或窗口覆盖。当撤销这些对话框或窗口时,这个
应用程序窗口中就有一个“空洞”,这个“空洞”就是一块无效的客户区域。像这种情
况还很多。比如改变窗口尺寸后,客户区的部分内容被遮盖,窗口最消化、客户区的滚
动等都会造成无效的客户区域。为重新显示无效客户区域,Windows 发送 WM_PAINT
消息,要求根据调整后的窗口尺寸重新绘制窗口。这是 WM_PAINT 消息的第二个用处。
这是一个重绘窗口得很好方法,绝大多数破坏窗口完整性显示的操作,都可以用这种方
法给予重新生成。只有像鼠标光标穿过客户区,图标拖动等少数操作,才不会触发
Windows 发送 WM_PAINT 消息。
只有在没有其他消息的情况下,才从队列中取出 WM_PAINT 消息进行处理。这样做是
为了让应用程序首先完成影响窗口显示结果的其他操作,不致因为频繁地执行输出操作
而引起显示器的闪烁。
Windows 并非 WM_PAINT 消息的唯一来源,使用 InvalidateRect 或 InvalidateRgn 函数
也可以产生绘图窗口的 WM_PAINT 消息。这两个函数把客户区部分或全部标记成无效
区域而要求重新显示。
字体(参考书 P111)
Windows 共支持两大类字体,即逻辑字体和设备字体。其中,设备字体是输出设备所固
有的;逻辑字体也称为 GDI 字体,可以创建并选入设备描述表在 Windows 2000 中支持
的三种类型的逻辑字体。此三种类型的逻辑字体为:
● 光栅字体
● 矢量字体
● TrueType 字体
注意:同一时刻,设备描述表中只能有一种字体
创建字体(参考书 P111)
常用的逻辑字体创建函数:CreateFont 和 CreateFontIndirect。
TextOut 函数(参考书 P109)
目前使用最为普遍的文字输出函数是 TextOut。该函数的格式如下:
TextOut (hdc, x, y, psText, iLength) ;
TextOut 向窗口的显示区域写入字符串。psText 参数是指向字符串的指针,iLength 是字
符串的长度。x 和 y 参数定义了字符串在显示区域的开始位置。hdc 参数是「设备内容
句柄」,它是 GDI 的重要部分。实际上,每个 GDI 函数都需要将这个句柄作为函数的
第一个参数。
滚动条消息(参考书 P121,书上有详细例程)
用鼠标单击滚动区或者果冻滚动滑块时,windows 给窗口函数发送 WM_VSCROLL(供
上下移动)和 WM_HSCROLL(供左右移动)消息。这两个消息的 wParam 参数的低字
节包含了一个称为“通知码”的标识符,分别标识每条消息产生的原因。