GDI与DC

DC(Device Context)是在windows底层下的结构体包含了GDI需要知道“display surface”的所有东西,包括和它相关的物理设备。当要在屏幕绘制时,应用程序需要从GDI获得一个DC句柄,然后当要调用GDI的输出函数时,就把这个句柄传递给它通过DC,GDI可以保证程序的所有绘制都限制在屏幕的指定区域。


GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,

处理所有Windows程序的图形输出。


GDI具有如下特点:
1. 不允许程序直接访问物理显示硬件,通过称为“设备环境”的抽象接口间接访问显示硬件;
2. 程序需要与显示硬件(显示器、打印机等) 进行通讯时,必须首先获得与特定窗口相关联的设备环境;
3. 用户无需关心具体的物理设备类型;
4. Windows参考设备环境的数据结构完成数据的输出。
GDI函数大致可分类为:
设备上下文函数(如GetDC、CreateDC、DeleteDC)、 
画线函数(如LineTo、Polyline、Arc)、
填充画图函数(如Ellipse、FillRect、Pie)、
画图属性函数(如SetBkColor、SetBkMode、SetTextColor)、
文本、字体函数(如TextOut、GetFontData)、位图函数(如SetPixel、BitBlt、StretchBlt)、
坐标函数(如DPtoLP、LPtoDP、ScreenToClient、ClientToScreen)、
映射函数(如SetMapMode、SetWindowExtEx、SetViewportExtEx)、
元文件函数(如PlayMetaFile、SetWinMetaFileBits)、
区域函数(如FillRgn、FrameRgn、InvertRgn)、
路径函数(如BeginPath、EndPath、StrokeAndFillPath)、
裁剪函数(如SelectClipRgn、SelectClipPath)等。

原文地址:https://www.cnblogs.com/fag888/p/5789153.html