#include <windows.h>
#include <math.h>
#define pi 3.14159265359
LONG FAR PASCAL WindowProc(HWND,UINT,WPARAM,LPARAM);
char szProgName[]="ProgName";
int PASCAL WinMain(hInst,hPreInst,lpszCmdLine,nCmdShow)
HINSTANCE hInst,hPreInst;
LPSTR lpszCmdLine;
int nCmdShow;
{
HWND hWnd;
MSG msg;
WNDCLASS WC23SWA;
if(!hPreInst)
{
WC23SWA.lpszClassName=szProgName;
WC23SWA.hInstance=hInst;
WC23SWA.lpfnWndProc=WindowProc;
WC23SWA.hCursor=LoadCursor(NULL,IDC_ARROW);
WC23SWA.hIcon=NULL;
WC23SWA.lpszMenuName=NULL;
WC23SWA.hbrBackground=GetStockObject(WHITE_BRUSH);
WC23SWA.style=CS_HREDRAW|CS_VREDRAW;
WC23SWA.cbClsExtra=0;
WC23SWA.cbWndExtra=0;
if(!RegisterClass(&WC23SWA))
return FALSE;
} hWnd=CreateWindow(szProgName,"Simple Windows Application",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,(HWND)NULL,(HMENU)NULL,(HANDLE)hInst,(LPSTR)NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,(HWND)NULL,(UINT)NULL,(UINT)NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(msg.wParam);
}
LONG PASCAL WindowProc(hWnd,messg,wParam,lParam)
HWND hWnd;
UINT messg;
WPARAM wParam;
LPARAM lParam;
{
PAINTSTRUCT ps;
HDC hdc;
int i;
double y;
switch(messg)
{
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
/*------------------------------------*/
MoveTo(hdc,0,1); // ???????,????????!  ////关键是这一句
LineTo(hdc,639,429);
TextOut(hdc,55,20,"<-this is a line",16); Chord(hdc,550,20,630,80,555,25,625,70);
TextOut(hdc,420,30,"<-this is a Chord",17);
Ellipse(hdc,200,200,275,250);
TextOut(hdc,210,215,"<-this is a Ellipse ",19); Pie(hdc,300,50,400,150,300,50,300,100);
TextOut(hdc,350,80,"<-this is a pie",15);
MoveTo(hdc,100,50);
LineTo(hdc,100,350);
MoveTo(hdc,100,200);
LineTo(hdc,500,200);
MoveTo(hdc,100,200);
for(i=0;i<400;i++)
{
y=120.0*sin(pi*i*(360.0/400.0/180.0));
LineTo(hdc,i+100,(int)(200.0-y));
}
/*------------------------------------*/ ValidateRect(hWnd,NULL);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd,messg,wParam,lParam));
break;
}
return(0l);
}

解决方案 »

  1.   

    确保包含这些库
    kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
      

  2.   

    不是MoveToEx吗?
    楼主为什么要用MoveTo?好像没有这个函数哦!
      

  3.   

    MoveToEx试一下
    MoveTo是windows3.X下的.
      

  4.   

    改完了
    #include <windows.h>
    #include <math.h>
    #define pi 3.14159265359
    LONG FAR PASCAL WindowProc(HWND,UINT,WPARAM,LPARAM);
    char szProgName[]="ProgName";//HINSTANCE hInst,hPreInst;
    //LPSTR lpszCmdLine;
    //int nCmdShow;int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow)
    {
    HWND hWnd;
    MSG msg;
    WNDCLASS WC23SWA;
    if(!hPreInst)
    {
    WC23SWA.lpszClassName=szProgName;
    WC23SWA.hInstance=hInst;
    WC23SWA.lpfnWndProc=WindowProc;
    WC23SWA.hCursor=LoadCursor(NULL,IDC_ARROW);
    WC23SWA.hIcon=NULL;
    WC23SWA.lpszMenuName=NULL;
    WC23SWA.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    WC23SWA.style=CS_HREDRAW|CS_VREDRAW;
    WC23SWA.cbClsExtra=0;
    WC23SWA.cbWndExtra=0;
    if(!RegisterClass(&WC23SWA))
    return FALSE;
    } hWnd=CreateWindow(szProgName,"Simple Windows Application",WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,(HWND)NULL,(HMENU)NULL, hInst, (LPSTR)NULL);
    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);
    while(GetMessage(&msg,(HWND)NULL,(UINT)NULL,(UINT)NULL))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    return int(msg.wParam);
    }//HWND hWnd;
    //UINT messg;
    //WPARAM wParam;
    //LPARAM lParam;LONG PASCAL WindowProc(HWND hWnd,  UINT messg, WPARAM wParam, LPARAM lParam)
    {
    PAINTSTRUCT ps;
    HDC hdc;
    int i;
    double y;
    switch(messg)
    {
    case WM_PAINT:
    hdc=BeginPaint(hWnd,&ps);
    /*------------------------------------*/
    MoveToEx(hdc, 0, 1, NULL); // ???????,????????!  ////关键是这一句
    LineTo(hdc,639,429);
    TextOut(hdc,55,20,"<-this is a line",16); Chord(hdc,550,20,630,80,555,25,625,70);
    TextOut(hdc,420,30,"<-this is a Chord",17);
    Ellipse(hdc,200,200,275,250);
    TextOut(hdc,210,215,"<-this is a Ellipse ",19); Pie(hdc,300,50,400,150,300,50,300,100);
    TextOut(hdc,350,80,"<-this is a pie",15);
    MoveToEx(hdc, 100, 50, NULL);
    LineTo(hdc,100,350);
    MoveToEx(hdc,100,200, NULL);
    LineTo(hdc,500,200);
    MoveToEx(hdc,100,200, NULL);
    for(i=0;i<400;i++)
    {
    y=120.0*sin(pi*i*(360.0/400.0/180.0));
    LineTo(hdc,i+100,(int)(200.0-y));
    }
    /*------------------------------------*/ ValidateRect(hWnd,NULL);
    EndPaint(hWnd,&ps);
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return LONG(DefWindowProc(hWnd,messg,wParam,lParam));
    break;
    }
    return(0l);
    }
      

  5.   

    你改一下版本
    #define WINVER 0X300
      

  6.   

    #define WINVER 0X300
     是什么意思???