C++ MFC 做个时钟显示软件.doc_第1页
C++ MFC 做个时钟显示软件.doc_第2页
C++ MFC 做个时钟显示软件.doc_第3页
C++ MFC 做个时钟显示软件.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现在以最短的时间带领大家进行一个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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论