首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

Invalidate()函数如何用,为什么小弟我编译不过呢

2012-03-22 
Invalidate()函数怎么用,为什么我编译不过呢。Invalidate()函数怎么用,为什么我编译不过呢。C/C++ code#incl

Invalidate()函数怎么用,为什么我编译不过呢。
Invalidate()函数怎么用,为什么我编译不过呢。

C/C++ code
#include<windows.h>#include<string.h>#include<stdlib.h>#include<stdio.h>#include<math.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinst,LPSTR lpszcmdline,int ncmdshow){    HWND hwnd;    MSG msg;    WNDCLASS wndclass;    char lpszclassname[]="sin";    char lpsztitle[]="My_Sin";    wndclass.style=0;    wndclass.lpfnWndProc=WndProc;    wndclass.cbClsExtra=0;    wndclass.cbWndExtra=0;    wndclass.hInstance=hinstance;    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);    wndclass.lpszMenuName=NULL;    wndclass.lpszClassName=lpszclassname;    if(!RegisterClass(&wndclass)){        MessageBeep(0);        return FALSE;    }    hwnd=CreateWindow(lpszclassname,lpsztitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hinstance,NULL);    ShowWindow(hwnd,ncmdshow);    UpdateWindow(hwnd);    while(GetMessage(&msg,NULL,0,0)){        TranslateMessage(&msg);        DispatchMessage(&msg);    }    return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam){    HDC hdc;    PAINTSTRUCT ps;    HPEN hp;    HBRUSH hb;    POINT p[100];    double PI=3.1415926;    int i;    for(i=0;i<100;i++){        p[i].x=2*PI/100*i*60;        p[i].y=100*sin(2*PI/100*i);    }    i=25;    int r;    switch(message){    case WM_PAINT:        if(i==100) i=0;        hdc=BeginPaint(hwnd,&ps);        SetMapMode(hdc,MM_TEXT);        SetWindowExtEx(hdc,150,150,NULL);        SetViewportExtEx(hdc,150,100,NULL);        SetViewportOrgEx(hdc,150,200,NULL);        hp=(HPEN)GetStockObject(BLACK_PEN);        SelectObject(hdc,hp);        Polyline(hdc,p,100);        hb=CreateSolidBrush(RGB(255,0,0));        SelectObject(hdc,hb);        r=p[i].y;        Ellipse(hdc,p[i].x-r,p[i].y-r,p[i].x+r,p[i].y+r);        EndPaint(hwnd,&ps);        DeleteObject(hp);        DeleteObject(hb);        Sleep(100);        i++;        Invalidate();        break;    case WM_DESTROY:        PostQuitMessage(0);    default:        return DefWindowProc(hwnd,message,wparam,lparam);    }    return 0;}


[解决办法]
SDK中没有这个函数,用 InvalidateRect吧。

热点排行