zoukankan      html  css  js  c++  java
  • EVC 下一个圆形时钟的代码

        CDC *pDC=this->GetDC();
        CRect rc(100,100,390,390); 
    //    GetClientRect( &rc );
        int xStart = (rc.right+rc.left)/2;
        int yStart = (rc.bottom+rc.top)/2;
        CTime time = CTime::GetCurrentTime();
        CString strDigits;
        int i,x,y;
        CSize size;    
        CPen Pen(PS_SOLID,5,RGB(0,0,0));
        CPen *pOldPen=pDC->SelectObject(&Pen);
        pDC->Ellipse(rc.left+5,rc.top+5,rc.right-5,rc.bottom-5);
        double Radians;
        pDC->SetTextColor(RGB(0,0,0));
        for(i=1; i<=12; i++){
            strDigits.Format(_T("%d"),i);
            size =pDC->GetTextExtent(strDigits,strDigits.GetLength());
            Radians=(double)i*6.28/12.0;//弧度数
            x=xStart-(size.cx/2)+
                (int)((double)((rc.right-rc.left-30)/2)*sin(Radians));
            y=yStart-( size.cy/2)-
                (int)((double)((rc.right-rc.left-30)/2)*cos(Radians));
            pDC->ExtTextOut( x, y, ETO_CLIPPED  ,NULL,strDigits,strDigits.GetLength(),NULL );
        }
        Radians = (double)time.GetHour()+(double)time.GetMinute()/60.0+
                (double)time.GetSecond()/3600.0;
        Radians *= 6.28/12.0;
        CPen HourPen(PS_SOLID,5,RGB(0,0,0));
        pDC->SelectObject(&HourPen);
        pDC->MoveTo(xStart,yStart);
        pDC->LineTo(xStart+(int)((double)((rc.right-rc.left-30)/2/3) *sin(Radians)),
            yStart-(int)((double)(((rc.bottom-rc.top-30)/2)/3)*cos(Radians)));
        Radians=(double)time.GetMinute()+(double)time.GetSecond()/60.0;
        Radians*=6.28/60.0;
        CPen MinutePen(PS_SOLID,3,RGB(0,0,0));
        pDC->SelectObject(&MinutePen);
        pDC->MoveTo(xStart,yStart);
        pDC->LineTo(xStart+(int)((double)(((rc.right-rc.left-30)/2*2)/3)*sin(Radians)),
            yStart-(int)((double)((((rc.bottom-rc.top-30)/2)*2)/3)*cos(Radians)));
        Radians=(double)time.GetSecond();
        Radians*=6.28/60.0;
        CPen SecondPen(PS_SOLID,1,RGB(0,0,0));
    
        pDC->SelectObject(&SecondPen);
        pDC->MoveTo(xStart,yStart);
        pDC->LineTo(xStart+(int)((double)(((rc.right-rc.left-30)/2*4)/5)*sin(Radians)),
            yStart-(int)((double)((((rc.bottom-rc.top-30)/2)*4)/5)*cos(Radians)));
        pDC->SelectObject(pOldPen);
  • 相关阅读:
    反射通过控件名返回控件对象
    比较两个datatable是否一样
    计算两个DateTime间的时间差(小时差、分钟差、秒钟差等)
    在IIS中调试程序
    Using TestDriven Development and the RedGreenRefactor Workflow
    WCF单元测试
    模拟发送POST或Get请求
    DES加解密方法(C#和android通用)
    Wcf Rest Service模板方法输入输出流数据
    网游放缓页游疾进 客户端游戏会被取代吗?
  • 原文地址:https://www.cnblogs.com/sankye/p/2936428.html
Copyright © 2011-2022 走看看