绘图(直线和曲线)
画线函数有以下七种:
1LIneto 画直线
2Polyline和PolylineTo 画一条由多条首尾相连的直线构成的折线
3PolyPolyline 画多条折线
4Arc 画椭圆弧线
5PolyBezier和PolyBesierTo 画赛尔样曲线
6ArcTo和AngleArc 画椭圆弧线
7PolyDraw 画多条赛尔样曲线
画一条线,必须调用两个函数
1MoveToEx(hdc,xBeg,yBeg,NULL);//起点
2LineTo(hdc,xEnd,yEnd);//终点
看看下面的代码,为了节约地盘,我只是拷贝过程函数的一部分
case WM_PAINT:hdc=BeginPaint(hwnd,&ps);GetClientRect(hwnd,&rect);for(x=0;x<rect.right;x+=100){MoveToEx(hdc,x,0,NULL);LineTo(hdc,x,rect.bottom);}for(y=0;y<rect.right;y+=100){MoveToEx(hdc,0,y,NULL);LineTo(hdc,rect.right,y);}EndPaint(hwnd,&ps);return 0;
结果如下:
//前面定义了五个点POINT apt[5]={100,100,200,100,200,200,100,200,100,100};
case WM_PAINT: hdc=BeginPaint(hwnd,&ps); GetClientRect(hwnd,&rect); MoveToEx(hdc,apt[0].x,apt[0].y,NULL); for(i=1;i<5;++i){ LineTo(hdc,apt[i].x,apt[i].y); }
//PolylineTo(hdc,apt+1,4);和Polyline(hdc,apt,5);这两条语句和上面的功能是一样的,画一个矩形
EndPaint(hwnd,&ps); return 0;
结果如下: