com时钟控件课程设计报告(编辑修改稿)内容摘要:

ckRadius = centerX centerY ? centerY : centerX。 //用较小的一个作为钟表的半径 , 避免半径太大矩形放不开 clockRadius = clockRadius *。 int keduDRadius = clockRadius *。 int keduXRadius = clockRadius *。 int hourRadius = clockRadius *。 //时针半径 int minuteRadius = clockRadius *。 //分针半径 int secondRadius = clockRadius *。 //秒针半径 //CPen clockPen(PS_SOLID, 2, RGB(0,0,255))。 CPen clockPen(PS_SOLID, 2, bpcolor)。 //配合下面的执行代码 , 使用自己定义的画笔来设置表盘的颜色 CPen * oldPen = pDCSelectObject(amp。 clockPen)。 //恢复到原来的画笔 //标注刻度 for(int i = 0。 i 12。 i++) { pDCMoveTo(centerX + keduDRadius * cos(i * 30 * PI / 180), centerY + keduDRadius * sin(i * 30 * PI / 180))。 pDCLineTo(centerX + clockRadius * cos(i * 30 * PI / 180), centerY + clockRadius * sin(i * 30 * PI / 180))。 } for(int j = 0。 j 60。 j++) { pDCMoveTo(centerX + keduXRadius * cos(j * 6 * PI / 180),//keduxradius是 ,更加接近圆周,所以比起时针当然理所当然的更短 centerY + keduXRadius * sin(j * 6 * PI / 180))。 pDCLineTo(centerX + clockRadius * cos(j * 6 * PI / 180), centerY + clockRadius * sin(j * 6 * PI / 180))。 } pDCSelectObject(oldPen)。 //调节时,分,秒针角度显示的关系 double secondRadians = m_second * 2 * PI / 60。 //一个圆周是 2pi,共有 60秒,所以一秒是左边这个表达式,用的是弧度值 double minuteRadians = m_minute * 2 * PI / 60 + secondRadians / 60。 //秒针每动一格,其效果等同于分针动 1/60格 double hourRadians = m_hour * 2 * PI / 12 + minuteRadians*5 / 60。 //依照所计算的角度画出时,分,秒针 //CPen secondPen(PS_SOLID, 2, RGB(0,255,0))。 CPen secondPen(PS_SOLID,2,secondcolor)。 oldPen = pDCSelectObject(amp。 secondPen)。 pDCMoveTo(centerX , centerY)。 //时针的起点在中心 pDCLineTo(centerX + double(secondRadius) * sin(secondRadians), centerY double(secondRadius) * cos(secondRadians))。 pDCSelectObject(oldPen)。 //CPen minutePen(PS_SOLID, 4, RGB(255,255,0))。 CPen minutePen(PS_SOLID, 4, minutecolor)。 oldPen = pDCSelectObject(amp。 minutePen)。 pDCMoveTo(centerX , centerY)。 pDCLineTo(centerX + double(minuteRadius) * sin(minuteRadians), centerY double(minuteRadius) * cos(minuteRadians))。 pDCSelectObject(oldPen)。 //CPen hourPen(PS_SOLID, 8, RGB(255,0,255))。 CPen hourPen(PS_SOLID,8,hourcolor)。 oldPen = pDCSelectObject(amp。 hourPen)。 pDCMoveTo(centerX , centerY)。 pDCLineTo(centerX + double(hourRadius) * sin(hourRadians), centerY double(hourRadius) * cos(hourRadians))。 pDCSelectObject(oldPen)。 //画表盘中心 CBrush abrush(RGB(255,0,0))。 CBrush * oldbrush = pDCSelectObject(amp。 abrush)。 pDCEllipse(centerX 8, centerY 8 , centerX +8, centerY +8)。 //最左是圆心减 8,最右是圆心加 8 pDCSelectObject(oldbrush)。 //定义数字时钟的位置,显示当前时间 CRect dianzibiao(centerX52,centerY*6/15, centerX+52,centerY)。 CString shijian。 char temp1[3], temp2[3], temp3[3]。 itoa(m_hour, temp1, 10)。 itoa(m_minute, temp2, 10)。 //ITOA功能,把一整书转换为字符串, 10进制 itoa(m_second, temp3, 10)。 (0, temp1)。 //temp1用来保存小时, temp2用来保存分钟, temp3用来保存秒 shijian += :。 //时和分之间的帽号 if(m_minute 10) { shijian += 0。 //如果分钟小于 10,则在前面加上字符“ 0”,以用来显示 “ 07” 、“ 08”之类的形式 } shijian += temp2。 shijian += :。 if(m_second 10。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。