📄 untitled-02.txt
字号:
任务环境如 Windows中,程序则无此自由。因为程序A的输出必须与程序 B的输出相隔离。
首先这意味着各程序的输出必须限制在自己的窗口中。GDI使用一简单的机制保证在窗口
中画图的各程序遵循这些规则。这种机制即为设备描述表(DC)。
当Windows程序在屏幕、打印机或其他输出设备上画图时,它并不是将像素直接输出到
设备上,而是将图绘制到由设备描述表(DC)表示的逻辑意义上的“显示平面”上去。设备描
述表是深寓于Windows中的一种数据结构,它包含GDI需要的所有关于显示平面情况的描
述字段,包括相连的物理设备和各种各样的状态信息。在平面上画图之前,Windows程序从
GDI获取设备描述表句柄,并在每次调用GDI输出函数时将句柄返回给GDI。若无有效的
设备描述表句柄,则GDI不会画第一个像素点。通过设备描述表,GDI可确保程序所画的任
何图形都能剪贴到屏幕的特定区域。设备描述表在使GDI摆脱设备限制的过程中发挥了重
要的作用。获得设备描述表句柄后,同一GDI函数可用来向多种输出设备上画图。
在使用MFC编制Windows程序时,设备描述表具有更加突出的作用。除了可作为通往
各种输出设备的桥梁之外,设备描述表对象还封装了程序用来产生输出的GDI函数。在
MFC中,您不用捕获设备描述表句柄和调用GDI输出函数,至少不必直接捕获和调用,而是
通过创建一设备描述表对象并调用它的成员函数来画图。MFC的CDC类将Windows设备
描述表和获取设备描述表句柄的 GDI函数就近封装在一起,而CDC派生类如 CPaintDC和
CClientDC则代表Windows应用程序使用的不同类型的设备描述表。
2.1.IMFC设备描述表类
在 MFC应用程序中获取设备描述表的一种方法是调用 CWnd:: GetDC,它返回指向表示
Windows设备描述表的 CDC对象的指针。在画图完毕时,要用 CWnd:: ReleaseDC释放由
CWnd:: GetDC获取的设备描述表指针。下面的程序代码由 GetDC获取 CDC指针,而后画图
并最终调用ReleaseDC释放设备描述表:
CDC。 pDC= GetDC();
// Do some drawing
ReleaseDC(PDC);
若同样的程序代码出现在 onPaint处理程序中时,则需用 CWnd:: BeginPaint和 CWnd::
EndPaint分别代替GetDC和ReleaseDC,以保证合理地处理WM.PAINT消息:
PAINTSTRUCT PS;
CDC。 pDC= BeqinPaint(&ps);
// Do some drawwng
sndnaint(&ps);
GDI还支持存储GDI命令序列的元文件,这些命令可重新执行以产生实际输出。为获
取元文件输出的设备描述表,还要使用另一套函数来获取和释放CDC指针。而且,为获取
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -