



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现在以最短的时间带领大家进行一个C+ MFC做的时钟软件,下面分几步叙述,相信大家看完本期实验,自己也能独立做个这样的软件第一启动Visual C+ 6.0,创建一个单文档应用程序,工程名为Clock。第二 打开ClassWizard对话框为CClockView类添加WM_TIMER和WM_CREAT消息函数代码如下。void CClockView:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultInvalidateRect(NULL,true);UpdateWindow();CView:OnTimer(nIDEvent);int CClockView:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: Add your specialized creation code hereSetTimer(1,1000,NULL);return 0;我们现在分别添加,截图如下第三打开ClockView.cpp文件添加头文件,调用数学函数库。在其他函数中添加代码。#include math.h截图如下第四在其他函数中添加代码。代码如下void CClockView:OnDraw(CDC* pDC)CClockDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here/获取客户区大小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(0,0,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 GetTextExtent (str,str.GetLength();/计算时间点放置的位置Radians = (double)i*6.28/12.0; x=CenterX-(size.cx/2)+(int)(double)(CenterX-0)*sin(Radians);y=CenterY-(size.cy/2)-(int)(double)(CenterY-20)*cos(Radians);/绘制12个时间点(1-12)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(255,0,255);pDC-SelectObject(&SecondPen);/绘制秒钟指针线pDC-MoveTo(CenterX,CenterY);pDC-LineTo(CenterX + (int)(double)(CenterX*4)/5)*sin(Radians),CenterY - (int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训项目动画课件模板
- 科学保护我们的家园课件
- 2025年AI安全模型保护(含答案与解析)
- 2025年多智能体竞争博弈策略习题(含答案与解析)
- 高三化学离子方程式文档
- 研学:新质生产力教育模式
- 落后地区新质生产力发展路径
- 智能制造:新质生产力的核心驱动力
- 2023新质生产力概念解读
- 2025年交通设备制造业数字化转型中的智能设备成本控制报告
- 健康体检信息系统软件需求规格说明书
- 微生物组与卵巢癌关联-全面剖析
- 机油商店转让协议书
- 数据结构应用试卷汇编
- 《投标文件产品质量保证措施:方案与实施》
- 滤波电路课件
- 五金零售行业O2O模式研究-全面剖析
- 老年护理学教案
- 《考研英语:综合能力提升教程(新版)》配套课件-阅读理解
- 《抗日战争课件》课件
- 起点签约合同
评论
0/150
提交评论