首先说明几个名词:
CDC 是MFC对Wind32 API的设备上下文(DC)进行封装的C++类,由他继承的类包括 CPaintDC(常用)CWindowDC(现在软件基本不用) CClientDC(少量临时地方使用)。
GDI 是图形设备接口,基类是CGdiObject。常用子类有 CPen(画笔),CBrush(画刷),CFont(字体),CBitmap(位图),CRgn(区域),CPalette(调色板)。
//CPen grammar
CPen myPen(PS_SOLID,4,RGB(255,0,0)); //Construct a CPen Object or use myPen.CreatePen() to construct it
dc.SelectObject(myPen);//Add pen resource to Current DC
dc.MoveTo(200,250); // Draw a single line
dc.LineTo(300,300);
如何获得CPen对象的详细信息?比如Style?Width,Color?使用的是LPLOGPEN结构体和GetLogPen方法获得。
如果没有更换画笔,以后使用会沿用这种画笔的样式。
闭合和开放图像:
Polygon PolyLine(多边形的最后两个点没有连接)
Chord Arc(椭圆的部分圆弧的起始点没有连接)
Rectangle,Ellipse 和 MoveTo LineTo
CFont可以设置字体的粗细/字体名/倾斜角/字宽等属性。
GDI使用完后最好恢复成默认系统值。
设置背景模式为透明:SetBkMode(Transparent);