#include<windows.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define Pi 3.1415926long WINAPI WndPorc(HWND hWnd,UINT Message,UINT wParam,LONG lParam);
double dfTheta=0,dfRange=100.0;//正弦曲线的角度变量
long i=0,j=0;
long lCentreX=0,lCentreY=0,lRadious=(long)(0.2*dfRange);
POINT lpSin[100];int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow
                   )
{
 WNDCLASS WndClass;
 WndClass.cbClsExtra=0;
 WndClass.cbWndExtra=0;
 WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
 WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
 WndClass.hIcon=LoadIcon(NULL,"END");
 WndClass.hInstance=hInstance;
 WndClass.lpfnWndProc=WndPorc;
 WndClass.lpszClassName="WinFill";
 WndClass.lpszMenuName=NULL;
 WndClass.style=CS_HREDRAW|CS_VREDRAW;//窗口类属性 if(!RegisterClass(&WndClass))
 {MessageBeep(0);return FALSE;} HWND hWnd;
 hWnd=CreateWindow
 ("SIN", //窗口类名
  "正弦",//标题名
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,  //窗口左上角坐标
  0,
  CW_USEDEFAULT,  //采用缺省的宽度和高度
  0,
  NULL,           //无父窗口
  NULL,           //无主菜单
  hInstance,     //当前实例句柄
  NULL); ShowWindow(hWnd,nCmdShow);  //显示窗口
 UpdateWindow(hWnd);         //更新并绘制用户区 for(int j=0;j<100;j++)
 {lpSin[j].x=(long)(j*2*Pi/100*60);
  lpSin[j].y=(long)(dfRange*sin(j*2*Pi/100));
 } MSG Message;
 while(GetMessage(&Message,0,0,0))
 {TranslateMessage(&Message);
  DispatchMessage(&Message);
 }
 return 0;
}long WINAPI WndPorc(HWND hWnd,UINT Message,UINT wParam,LONG lParam)
{HDC hDC;   //定义设备环境句柄
 HBRUSH hBrush; //定义画刷句柄
 HPEN hPen;     //定义画笔句柄
 PAINTSTRUCT PtStr; //定义包含绘图信息的结构体变量 switch(Message)
 {case WM_PAINT:   //处理绘图信息
  hDC=BeginPaint(hWnd,&PtStr); //获得设备环境指针
  SetWindowOrgEx(hDC,-200,-200,NULL);
  hPen=CreatePen(PS_DASH,1,RGB(255,0,0));
  SelectObject(hDC,hPen);
  Polyline(hDC,lpSin,100);    //绘制正弦曲线
 
 
 if(i<=25)
 {hPen=CreatePen(PS_DASH,1,RGB(255,0,0));
  hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0));
  lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);//计算半径
 } else if(i<=50)
 {hPen=CreatePen(PS_DASH,1,RGB(0,255,0));
  hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,0));
  lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);//计算半径
 } else if(i<=75)
 {hPen=CreatePen(PS_DASH,1,RGB(0,0,255));
  hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,0,255));
  lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);//计算半径
 } else if(i<=100)
 {hPen=CreatePen(PS_DASH,1,RGB(255,255,0));
  hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,0));
  lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);//计算半径
 } SelectObject(hDC,hBrush);
 SelectObject(hDC,hPen);
 lCentreX=lpSin[i].x;
 lCentreY=lpSin[i].y;
 Ellipse(hDC,lCentreX-lRadious,lCentreY-lRadious,lCentreX+lRadious,lCentreY+lRadious); i++;
 DeleteObject(hPen);
 DeleteObject(hBrush);
 EndPaint(hWnd,&PtStr);
 Sleep(100);
 if(i<100) InvalidateRect(hWnd,NULL,1);
 return 0;
 break;  case WM_DESTROY:PostQuitMessage(0);break;
 default:return(DefWindowProc(hWnd,Message,wParam,lParam));
 }
 return 0;
}哪里出错了?请高手指教。