回 帖 发 新 帖 刷新版面

主题:小弟初识API,不才,请教一个画圆问题

{
                HDC hDC;
            RECT rect,rect1;
            rect.left=rect.top=10;
            rect.right=rect.bottom=100;
            hDC=GetDC(hWnd);
            GetClientRect(hWnd,&rect);
            POINT pt;
            pt.x=(rect.left+rect.right)/2;
            pt.y=(rect.top+rect.bottom)/2;
            rect1.left=pt.x-155;rect1.right=pt.x-145;
            rect1.top=pt.y+5;rect1.bottom=pt.y-5;
            static int dx=0,dy=0,flag=1;
            

    switch (message) 
    {
        case WM_COMMAND:
            wmId    = LOWORD(wParam); 
            wmEvent = HIWORD(wParam); 
            // Parse the menu selections:
            switch (wmId)
            {
                case IDM_ABOUT:
                   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
                   break;
                case IDM_EXIT:
                   DestroyWindow(hWnd);
                   break;
                default:
                   return DefWindowProc(hWnd, message, wParam, lParam);
            }
            break;
        case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            // TODO: Add any drawing code here...
            RECT rt;
            GetClientRect(hWnd, &rt);
            DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
            EndPaint(hWnd, &ps);
            break;
        case WM_LBUTTONDOWN:
            SetTimer(hWnd,WM_TIMER,10,NULL);
            break;
        case WM_TIMER:
            
            if(flag)
            {
                
                OffsetRect(&rect1,dx,dy);
                dy=(int)sqrt(pow(150,2)-pow((150-dx),2));
                if(dx==300)
                    flag=0;
                dx++;
                
            }
            else
            {
                
                OffsetRect(&rect1,dx,dy);
                dy=-(int)sqrt(pow(150,2)-pow((150-dx),2));
                if(dx==0)
                    flag=1;
                dx--;
                

            }
            FillRect(hDC,&rect1,(HBRUSH)GetStockObject(BLACK_BRUSH));
        
            break;
        case WM_RBUTTONDOWN:
            OffsetRect(&rect1,1,1);
                FillRect(hDC,&rect1,(HBRUSH)GetStockObject(BLACK_BRUSH));
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_INITDIALOG:
                return TRUE;

        case WM_COMMAND:
            if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
            {
                EndDialog(hDlg, LOWORD(wParam));
                return TRUE;
            }
            break;
    }
    return FALSE;
}

为什么有断点





回复列表 (共2个回复)

沙发

汗..不把问题说清楚点谁有空给你看代码~~~

板凳

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即时网游、交友,娱乐游戏,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料 http://user.qzone.qq.com/909065437/infocenter
网商咨询 摩客天宇QQ 909065437 

我来回复

您尚未登录,请登录后再回复。点此登录或注册