GDI及MFC中CDC类概要

1.GDI概念

GDI:Graphics Device Interface,即图形设备接口,是Windows API的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行操作。它的桥梁作用体现在:
(1)用户通过调用GDI函数将逻辑空间的操作转化为具体针对设备驱动程序的调用。为实现图形设备无关性,Windows的绘图操作在一个设备描述表上进行。用户拥有自己的“逻辑坐标”系统,它独立于实际的物理设备,与“设备坐标”相对应。开发Windows应用程序时,程序员关心的是逻辑坐标,我们在逻辑坐标系上绘图,利用GDI将逻辑窗口映射到物理设备上。
(2)GDI能检测具体设备的能力,并依据具体的设备以最优方式驱动这些设备,完成真实的显示。

2.MFC中CDC类基本运用

使用GDI时,经常需要将PEN、BRUSH等GDI对象选入DC(CDC类),并需要保存旧的GDI对象,然后进行一些绘图操作。此时调用的绘图函数都是使用这些新选入的PEN、BRUSH,绘图完成之后再把旧的GDI对象重新选回DC,这称之为“状态模式”。在空间变量在调用过GetDC()接口后,需要调用ReleaseDC()进行释放,否则将会占用大量内存资源,造成程序崩溃。

CPen pen;
pen.CreatePen(PS_SOLID, 1, RGB(0,255,0));//构造画笔对象
CDC* dc=this->GetDC();
CPen *pOldPen;
pOldPen=dc->SelectObject(&pen);//将画笔选入DC
dc->MoveTo(m_ptOrigin);//m_ptOrigin和point为Point类型的点
dc->LineTo(point);
dc->SelectObject(pOldPen);//恢复先前的画笔
pen.DeleteObject();
ReleaseDC(dc);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、Windows打印体系结构 首先附上查找Windows打印相关内容的链接,这个分类下包含了Windows打印的...
    我是嘻哈大哥阅读 2,850评论 0 4
  • Invalidate使整个窗口客户区无效。窗口的客户区无效意味着需要重绘。Windows会在应用程序的消息队列里放...
    侧漏的少年阅读 1,842评论 2 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,695评论 19 139
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,685评论 1 32
  • 第一次见这个时节的落叶 这是春天里的凋零 北方,是枝叶抽芽,沿河开柳的时候 眼前,仿佛是春风的魔法 摇落了昨夜的绽...
    雪斩梅阅读 248评论 0 0

友情链接更多精彩内容