//定义坐标系
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