全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现在以最短的时间带领大家进行一个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中复神鹰碳纤维连云港有限公司招聘356人(江苏)笔试历年参考题库附带答案详解
- 2025中国建材所属企业招聘10人笔试历年参考题库附带答案详解
- 2025东风越野车有限公司民品及海外营销岗位招聘16人笔试历年参考题库附带答案详解
- 固定型铅酸蓄电池质量问题分析及防治措施
- 江苏连云港市海滨中学等校2025-2026学年第二学期期中考试高二数学试卷(含答案)
- 河南省周口市天立高级中学等校2025-2026学年高二下学期期中联考数学试卷(含答案)
- 2026年河北省石家庄市裕华区中考英语模拟试卷(三)(含答案)
- 2025-2026学年天津市西青区高一(下)期中数学试卷(含答案)
- 2026年奶茶店员工健康检查协议
- 2026三年级下新课标音乐感受与欣赏
- 车间划线及颜色标准
- 济南版七年级生物下册期中试卷(含答案)
- DB33-T 2360-2021 彩色森林营建技术规程
- 急慢性肾小球肾炎病人的护理课件
- 人教版初中中考物理电学专题试题及答案详解
- 17G911 钢结构施工安全防护
- 招标控制价编制实例
- 骨关节炎药物治疗进展
- ISO-TS16949:质量管理体系中英文对照版
- GA 676-2007警用服饰刺绣软肩章
- 四川省成都市《综合应用能力测试》事业单位国考真题
评论
0/150
提交评论