代码改变世界

绘图(直线和曲线)

2012-07-31 23:39  java线程例子  阅读(280)  评论(0编辑  收藏  举报

画线函数有以下七种:

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;


结果如下: