全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现在以最短的时间带领大家进行一个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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果园管理考核试题及标准答案
- 文本摘要Python实践课程设计
- 模拟退火车间调度课程设计案例课程设计
- 超大风量除尘课程设计
- 参考文献 c 课程设计
- WebGL粒子特效系统项目实战课程设计
- 同态加密隐私保护应用课程设计
- 深度强化学习游戏AI(如Atari)技术前沿课程设计
- 无人机自主降落工程方案课程设计
- 图像灰度化与边缘检测程序图像分析课程设计
- 2024-2025学年广东广州番禺区七年级(下)期末数学试卷及答案
- 2026福建海峡科化股份有限公司社会招聘15人笔试备考题库及答案详解
- 2026北京语言大学新编长聘人员招聘9人(第三批)考试备考题库及答案详解
- 2026秋北京版小学数学二年级上册教学计划
- 消化内镜操作规范
- 护理沟通与人文关怀技巧
- 软包墙面施工方案及技术措施
- 2026年秋季学期 1530安全教育记录
- 病历书写基本规范(国家卫健委2022年版)
- 核心素养导向下大单元教学-成都中考B卷填空题23与几何压轴26最值系列专题复习教案
- DB54T 0616-2026《民用供氧工程施工及验收规范+》
评论
0/150
提交评论