指针式时钟.pptVIP

  • 17
  • 0
  • 约 13页
  • 2017-02-15 发布于北京
  • 举报
指针式时钟.ppt

指针式时钟 1.启动Visual C++ 6.0,创建一个MFC AppWizard(exe)的单文档应用程序MyClock。 2.在视图类的OnDraw函数里添加代码,实现绘制时钟,具体如下:  //获取客户区 RECT Rect; GetClientRect(Rect); //计算椭圆中心位置 int CenterX = Rect.right/2; int CenterY = Rect.bottom/2; //取当前时间 CTime Time = CTime::GetCurrentTime(); CString str; int i,x,y; CSize size; //创建一支黄色的笔,用来画椭圆 CPen Pen(PS_SOLID,5,RGB(255,255,0)); //设置当前画笔,并记下以前的画笔 CPen *OldPen = pDC-SelectObject(Pen); //绘制钟面椭圆 pDC-Ellipse(5,5,Rect.right-5,Rect.bottom-5);   double Radians; //设置字体颜色为红色 pDC-SetTextColor(RGB(255,0,0)); for(i = 1;i = 12;i++){ //格式化钟点值 str.Format(%d,i); size = pDC-GetTextExtent(str,str.GetLength()); Radians = (double)i*6.28/12.0; //计算钟点放置的位置 x = CenterX - (size.cx/2) + (int)((double)(CenterX - 20)* sin(Radians)); y = CenterY - (size.cy/2) - (int)((double)(CenterY - 20)* cos(Radians)); //绘制钟点 pDC-TextOut(x,y,str); } //计算时钟指针的夹角 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,255,0)); pDC-SelectObject(HourPen); //绘制时钟指针 pDC-MoveTo(CenterX,CenterY); pDC-LineTo(CenterX + (int)((double)(CenterX/3)*sin(Radians)), CenterY - (int)((double)(CenterY/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,255)); pDC-SelectObject(MinutePen); //绘制分钟指针 pDC-MoveTo(CenterX,CenterY); pDC-LineTo(CenterX + (int)((double)(CenterX*2)/3)*sin(Radians), CenterY - (int)((double)(CenterY*2/3)*cos(Radians))); Radians = (double)Time.GetSecond(); Radians *= 6.28/60.0; //创建秒钟指针画笔 CPen SecondPen(PS_SOLID,1,RGB(0,255,255)); pDC-SelectObject(SecondPen); //绘制秒钟指针 pDC-MoveTo(CenterX,CenterY); pDC-LineTo(CenterX + (int)((double)(CenterX*4)/5)*sin(Radians), CenterY - (int)((double)(CenterY*4)/5*cos(Radians))); pDC-SelectObject(OldPen); 3.Ctrl+F5打开Class Wizard,为视图类添加OnCreate函数和OnTimer函数,前者用来设置时钟计时器,后者用来更新窗口。实现代码分别如下:

文档评论(0)

1亿VIP精品文档

相关文档