资源简介
采用vs2008 编写的一款MFC时钟程序。
V2.0主要更新了数字显示和图标的显示。
采用vs2008 编写的一款MFC时钟程序。
V2.0主要更新了数字显示和图标的显示。
采用vs2008 编写的一款MFC时钟程序。
V2.0主要更新了数字显示和图标的显示。
代码片段和文件信息
// ChildView.cpp : CChildView 类的实现
//
#include “stdafx.h“
#include “Clock.h“
#include “ChildView.h“
#include “math.h“
#define M_PI 3.14159265358979323846
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
CChildView::CChildView()
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView CWnd)
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_CREATE()
ON_WM_DESTROY()
END_MESSAGE_MAP()
// CChildView 消息处理程序
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExstyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS
::LoadCursor(NULL IDC_ARROW) reinterpret_cast(COLOR_WINDOW+1) NULL);
return TRUE;
}
int CChildView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
SetTimer(1001000NULL);//WM_TIMER消息, 每秒触发一次
return 0;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
DrawClock(&dc);//重绘时钟面
}
void CChildView::OnTimer(UINT_PTR nIDEvent)
{
CWnd::OnTimer(nIDEvent);
if(nIDEvent == 100)
{//每秒会触发一次,在客户区重绘时钟面
CClientDC dc(this);
DrawClock(&dc);
}
}
void CChildView::OnDestroy()
{
CWnd::OnDestroy();
KillTimer(100);//已经不需要计时器了,将它删除
}
//该重载函数可以将CSize的两个成员都乘上一个倍率
static CSize operator*(const CSize& szdouble scalar)
{
CSize new_sz;
new_sz.cx = int (sz.cx * scalar);
new_sz.cy = int (sz.cy * scalar);
return new_sz;
}
//根据角度和半径,计算椭圆圆周上的点坐标
CSize PositionOnCircle(const CSize& radiusdouble angle)
{
CSize result;
result.cx = (int)(sin(angle*2*M_PI)*radius.cx);
result.cy = (int)(-cos(angle*2*M_PI)*radius.cy);
return result;
}
//时钟面的每个分度的颜色
const static COLORREF pieColorLookup[]=
{
RGB(170251210)RGB(235252169)RGB(215245255)
};
//绘画时钟
void CChildView::DrawClock(CDC* pDC)
{
CRect clockRect;
GetClientRect(&clockRect);
CPen pen;
CBrush brush;
int piePart;
CPoint centerp1p2;
CSize radius;
SYSTEMTIME st;
GetLocalTime(&st);//获取当前时间
//设置半径和圆心
radius = clockRect.Size();
center = clockRect.CenterPoint();
//设置走向为逆时针
pDC->SetArcDirection(AD_CLOCKWISE);
double th = 30;
double r = radius.cx/2;
CPoint num;
//将时钟面分为12区域,并填充不同颜色
for(piePart = 0;piePart <12;piePart ++)
{
COLORREF pieColor;
pieColor = pieColorLookup[piePart%3];
pen.CreatePen(PS_SOLID5pieColor);
brush.CreateSolidBrush(pieColor);
pDC->Selectobject(&pen);
pDC->Selectobject(&brush);
//计算每个区域在圆周上的起止位置
p1 = center + PositionOnCircle(radiuspiePart/12.0);
p2 = center + PositionOnCircle(radius(piePart + 1)/12.0);
pDC->Pie(&clockRectp1p2);
//显示 时钟数字
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(50180250));
pDC->TextOut(1380“12“);
pDC->TextOut(21015“1“);
pDC->TextOut(26565“2“);
pDC->TextOut(280132“3“);
pDC->TextOut(264205“4“);
pDC->TextOut(215255“5“);
pD
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-08-04 12:30 Clock\
文件 4024 2012-08-04 11:01 Clock\ChildView.cpp
文件 561 2012-08-04 00:09 Clock\ChildView.h
文件 63304 2012-08-04 09:15 Clock\Clock.aps
文件 2803 2012-08-04 08:27 Clock\Clock.cpp
文件 470 2012-08-03 23:35 Clock\Clock.h
文件 8507 2012-08-04 09:15 Clock\Clock.rc
文件 5655 2012-08-04 08:28 Clock\Clock.vcproj
文件 1423 2012-08-04 12:28 Clock\Clock.vcproj.caizhiming-PC.caizhiming.user
文件 3072 2012-08-04 09:16 Clock\MainFrm.cpp
文件 947 2012-08-03 23:43 Clock\MainFrm.h
文件 2947 2012-08-03 14:52 Clock\ReadMe.txt
目录 0 2012-08-04 12:30 Clock\res\
文件 724 2012-08-03 23:41 Clock\resource.h
文件 21630 2012-08-04 12:27 Clock\res\Clock.ico
文件 361 2012-08-03 14:52 Clock\res\Clock.rc2
文件 598 2003-07-24 09:52 Clock\res\Toolbar.bmp
文件 136 2012-08-03 14:52 Clock\stdafx.cpp
文件 1796 2012-08-03 14:52 Clock\stdafx.h
文件 1030 2012-08-03 14:52 Clock\targetver.h
- 上一篇:扫雷游戏源程序 c++课程设计必备
- 下一篇:文件MD5查看器工具软件
相关资源
- MFC图像处理 反色和红色
- OpenGL+MFC显示三维点云中每一个点的法
- 用openglMFC实现的魔方
- 基于MFC编写的读写USB_HID设备数据程序
- VS2010 MFC 选择并获得文件的MD5
- 建立一个基于对话框的MFC应用程序S
- VC MFC图片获取代码.rar
- MFC同步线程类
- DirectUIForMFC
- 密码学MFC实现仿射加密解密超级计算
- mfc控制台输出
- VC/MFC创建可编辑节点的树形控件
- MFC下实现SOAP服务端和SOAP客户端
- 广播通信设计
- DMDECODER二维码识别MFC工程
- MFC万年历制作
- MFC+OPENGL实现3D茶壶的旋转、平移
- MFC 鼠标实时画线
- MFC动态绘制曲线图-HightSpeedChart实现
- MFC下好用的高速绘图控件-(Hight-Spe
- MFC 窗口缩放
- CBarchart 控件做的柱形图 MFC编程
- MFCN42D.DLL
- C++MFC画圆源代码
- 采用MFC编写的文件加密解密程序
- MFC通过文件类型名获取文件图标列表
- MFC用户界面线程的创建
- MFC 界面换肤资源
- VC+MFC网络聊天工具详细设计.doc
- 蚂蚁算法MFC实现执行文件
评论
共有 条评论