消息
从消息的发送途径上看,消息可以分为队列消息和分队列消息。其中,队列消息送到系统消息队列,然后到线程消息队列中,而非队列消息直接送给目的窗口过程。
消息隐射,就是把Windows系统的各种消息隐射到MFC类库的成员函数上的一种机制。简单说,就是让程序员制定要某个有消息处理能力的MFC类来处理某个消息。
图形方面GDI
逻辑空间是一个理由的绘图空间。在这个空间里,程序员可以使用所有的颜色、所有的字体,可以在无限大的范围内输出。设备空间则是一个真实具体的世界,在这个空间中,只有有限的颜色可用于绘图、具有特定的输出格式以及有限的输出空间。
设备环境DC,是由GDI创建的用于代表设备连接的数据结构。该数据结构包含了图形设备的绘制属性信息。GDI绘制调用都是借助于设备环境对象。该对象封装了用于画线、文本、图像等的WindowsAPI.设备环境可以进行与设备无关的绘制,因此它既可以用于绘制屏幕,又可以用于绘制打印机,甚至元文件等。
CPaintDC类
BeginPaint(),它只能在WM_PAINT消息的响应程序中使用。当用函数BeginPaint()得到设备环境句柄后,就可以在设备环境中进行一系列的绘图操作,最后必须采用函数EndPaint()来释放这个DC句柄。
CPaintDC类则完全封装了这一过程,该类派生于CDC类。
CClientDC类
CClientDC类所封装的设备环境仅代表视图类窗口,也就是说只能在窗口的客户区进行图形绘制,该类派生于CDC类。
CWindowDC类
窗口有客户区和非客户区,利用BeginPaint()/EndPaint()或GetDC()/Release()在客户区上绘图。
非客户区包括窗体标题栏、菜单、滚动条和框架。GetWindowDC()这个函数就能满足在非客户区绘图的要求,因为该函数可以获得整个窗口的设备句柄,包括客户区和费客户区,也就是说可以在一个窗体的任何位置进行绘图。CWindowDC()函数是其成员函数,并且它也是派生于CDC类。
所谓映射模式,就是确定用于绘图操作的单位大小的一种量度转换。也就是说,设定的映射模式主要是确定应该如何将逻辑空间的一个坐标点转换为设备空间中的一个设备坐标点。映射模式是一种影响绘图操作的设备属性,其中窗口原点,视口原点、窗口范围和视口范围这四个设备属性和映射模式密切相关。因此映射模式主要规定了窗口和视口的范围、各轴的相对放心、原点或缩放比例等。
SetMapMode()函数用于设置设备环境的映射模式。几种映射模式:MM_TEXT映射模式、固定比例映射模式、可变比例映射模式。