//定义坐标系
CRect rect;
GetClientRect(&rect);//其实现在我也不太懂这句话有什么具体意思 !@@!!
//采用自定义的形式 窗口和视区的坐标系都自己定义
pDC->SetMapMode(MM_ANISOTROPIC);
//经常用的模式还有 MM_TEXT(每个逻辑坐标对应一个设备坐标 正x向右 正y向下)
//定义视区,通过与窗口设置的比较 设置成 x正向 右 ,,y正向上 pDC->SetWindowExt(rect.Width(),rect.Height());
pDC->SetViewportExt(rect.Width(),-rect.Height());
//设置视区原点,视区原点是设备坐标系下的
pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);
//创建画笔 ----绘制区域外边界
画笔三要素 1、线型 2、宽度 3、颜色
//DASH虚线 /DASHDOT点虚线/ DOT点线/SOLID
//第三个参数是color类型 ,本质是32位的颜色数据类型,如0x0000ff(红色)
//也可以用RGB宏来创建 RGB(255,0,0)也是红色 RGB(ff,0,0)
创建画笔可以使用
BOOL CreatePen(PS_DASH,1,RGB(255,0,0));
也可以用构造函数
CPen(npenstyle,nwidth,crcolor)
//创建画刷-----图形内部进行填充 所以仅对闭合图形有效
默认的画刷是白色的 所以在画矩形啊 等封闭的图形时 内部用默认的白色画刷填充,就显现不出来填充色了
//画刷分为 1、实体画刷CreateSolidBrush(),
2、 阴影画刷CreateHatchBrush(int nIndex,COLORREF,crColor)
//以下三种 画刷都可以用CBrush()来创建 区别于参数个数来创建不同的画刷
BOOL CreateSolidBrush(RGB(255,0,0));
BOOL CreateHashBrush(HS_CROSS,0xff0000);
//CreatePatternBrush(*pBitmap) 创建逻辑画刷 位图可以使从资源中导入的DDB位图
使用位图画刷时 要确保位图在画刷中的相对位置不变 ,用SetBrushOrg()设置画刷起点
//选入GDI对象 GDI对象在创建后 只有选入上下文中才能使用
//CPen* pDC->SelectObject(CPen* cpen)
//CBrush* pDC->SelectObject(CBrush *cbrush)
//CBitmap* pDC->SelectObject(CBitmap * pbitmap)
//上述三个函数 都是设置上下文类所选中的画笔、 画刷 、位图,返回的指针是指向被替换掉的画笔 、画刷、 位图的指针
//绘制像素点函数 2种 1、返回画的点的RGB值SetPixel(10,10,RGB(255,0,0));
2、不返回RGB值 SetPixelV(10,10,RGB(255,255,0))
COLORREF color=GetPixel(10,10);//返回 该点的RGB值
//绘制线段 要先创建画笔 CPen *poldpen,newpen;
newpen.CreateCPen(PS_SOLID,1,RGB(0,ff,0));
poldpen=pDC->SelectObject(&newpen);
2个BOOL LineTo(x,y);从当前位置划线到xy处,并改变当前位置为 xy
//CPoint MoveTo(x,y);只是将当前位置 移动到xy,并不划线
//绘制矩形 Rectangle
原文地址:http://781588100.blog.51cto.com/9429625/1566927