求一C++指针式时钟的源代码

用VisualC++编写一个指针式时钟的程序,要求用单文档应用程序。设计思想:1)用MFCAppWizard(exe)创建一个新工程,将其命名为clock。2)在MFCA... 用Visual C++ 编写一个指针式时钟的程序,要求用单文档应用程序。

设计思想:1)用MFCAppWizard(exe)创建一个新工程,将其命名为clock。
2)在MFCAppWizard第一步中设计应用程序的类型为单个文档模式,然后单击“确定”按钮,于是应用程序clock 就创建完毕。
3)打开MFCAppWizrd,为clock,为clock类添加OnCreater和OnTimer函数
4)编辑OnDraw函数的代码,实现绘制时钟;编辑OnTimer函数的代码,用来更新窗口;编辑OnCreater函数的代码,用来设置时钟。
5)最后对此工程进行编译,若有错误,则进行修改,没有错误则运行成功。
具体内容:
首先,工程建立完毕后,打开此工程,在clockView.cpp窗口中
进行编译。
在函数void CClockView::OnDraw(CDC* pDC)下进行编译。
源代码如下:
void CClockView::OnDraw(CDC* pDC)
{
CClockDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CClockDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//获取客户区大小
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);
//设置字体颜色为红色
pDC->SetTextColor(RGB(255,0,0));
for(i=1;iGetTextExtent(str,str.GetLengh());
//计算时间点放置位置
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)((doble)(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();..

基本上都有了
但老是提示"stdafx.h"不存在
怎么弄啊?
展开
 我来答
wangbinwh
2009-02-25 · TA获得超过639个赞
知道大有可为答主
回答量:1367
采纳率:100%
帮助的人:523万
展开全部

按照下图修改工程设置,选择不使用预编译头。

意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
匿名用户
2009-02-25
展开全部
VC的话,是不需要"stdafx.h"的,你直接删掉这个头文件include就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jaycnvip
2009-03-03 · TA获得超过767个赞
知道小有建树答主
回答量:998
采纳率:100%
帮助的人:641万
展开全部
以前遇到过这种情况,你可以尝试先关闭工作空间,然后把工作目录下Debug文件夹彻底删除,再打工作空间后,直接点build按纽,重新建立一个文件夹。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式