⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timemanagerview.cpp

📁 该时间管理是模仿酷派628手机上的时间管理书写其功能
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/**
*************************************************************** 
* 文件名: TimeManagerView<br>
* 版  权: Copyright (c) 2006-2020 中兴软件技术(南昌)有限公司<br>
* 创建人: 袁军 
* 日  期: 2007/05/28 
* 描  述: 该类是时间管理的主框架类,将实现对时间管理主框架的管理以及界面的正确的显示。
* 修改人:  
* 日  期:  
* 修改描述:  
* 版  本: 0.1
***************************************************************
*/

#include "stdafx.h"
#include "TimeManager.h"

#include "TimeManagerDoc.h"
#include "TimeManagerView.h"
#include "ClockCtrl.h"
#include "UpdateTime.h"
#include "CalendarPage.h"
#include "UpdateTimeZone.h"
#include "OtherTimeZone.h"
#include "Afx.h"

#include "RWini.h"
#include "CommonInterface.h"

#include "Define.h"



#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTimeManagerView

IMPLEMENT_DYNCREATE(CTimeManagerView, CFormView)

BEGIN_MESSAGE_MAP(CTimeManagerView, CFormView)
	//{{AFX_MSG_MAP(CTimeManagerView)
	ON_WM_LBUTTONDOWN()
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BTN_FIRST_TIME_ZONE, OnBtnFirstTimeZone)
	ON_BN_CLICKED(IDC_BTN_SECOND, OnBtnSecond)
	ON_BN_CLICKED(IDC_BTN_THIRD, OnBtnThird)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTimeManagerView construction/destruction

CTimeManagerView::CTimeManagerView()
	: CFormView(CTimeManagerView::IDD)
{
	//{{AFX_DATA_INIT(CTimeManagerView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}


/**
************************************************************* 
* 函 数 名: ~CTimeManagerView()
* 描    述: 析构函数,用于该类的清尾工作
* 数 据 库: 无
* 数据库表: 无
* 输入参数: 无
* 返 回 值: 无
* 创 建 人: 袁军
* 日    期: 2007/05/22
* 修改记录: 
*     修改人      修改日期      修改描述
*************************************************************
*/ 

CTimeManagerView::~CTimeManagerView()
{
}


/**
************************************************************* 
* 函 数 名: SetUpdateTime(int nHour, int nMinute, int nSecond)
* 描    述: 设置系统表的时间
* 数 据 库: 无
* 数据库表: 无
* 输入参数: nHour:小时, nMinute:分,nSecond:秒
* 输出参数: 无
* 返 回 值: 无
* 创 建 人: 袁军
* 日    期: 2007/05/22
* 修改记录: 
*     修改人      修改日期      修改描述
*************************************************************
*/ 

void CTimeManagerView::SetUpdateTime(int nHour, int nMinute, int nSecond)
{   
	//设置系统表的时间
	m_ctrlFirstClock.SetTime(nHour, nMinute, nSecond);
}


/**
************************************************************* 
* 函 数 名: GetTimeZoneName()
* 描    述: 获取系统时区名
* 数 据 库: 无
* 数据库表: 无
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 返回系统时区的时区名
* 创 建 人: 袁军
* 日    期: 2007/05/22
* 修改记录: 
*     修改人      修改日期      修改描述
*************************************************************
*/
CString CTimeManagerView::GetTimeZoneName()
{
	TIME_ZONE_INFORMATION tziOld;
	DWORD dwRet;
		
	dwRet = GetTimeZoneInformation(&tziOld);
	
	//获取标准时间成功
	if(TIME_ZONE_ID_STANDARD  ==  dwRet || TIME_ZONE_ID_UNKNOWN == dwRet) 
	{
		//返回标志时区名,并将它赋值给m_strSysTimeZone,便于以后利用
		m_strSysTimeZone = tziOld.DaylightName;
		m_lBias = tziOld.StandardBias;
		return m_strSysTimeZone;
	}
	else if(TIME_ZONE_ID_DAYLIGHT ==  dwRet)
	{
		return tziOld.DaylightName;
	}
	else
	{
		CString strMsgInfo;
		strMsgInfo.LoadString(IDS_STR_GET_SYSZONE_NOSECC);
		MessageBox(strMsgInfo);
	}
	return "";
}


/**
*****************GetSysBias()******************************************** 
* 函 数 名: GetSysBias()
* 描    述: 获取世界时区与系统时区的时差
* 数 据 库: 无
* 数据库表: 无
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 创 建 人: 袁军
* 日    期: 2007/12/13
* 修改记录: 
*     修改人      修改日期      修改描述
*************************************************************
*/ 

LONG CTimeManagerView::GetSysBias()
{
	TIME_ZONE_INFORMATION tziOld;
	DWORD dwRet;
		
	dwRet = GetTimeZoneInformation(&tziOld);
	
	//获取标准时间成功
	if(TIME_ZONE_ID_STANDARD  == dwRet || TIME_ZONE_ID_UNKNOWN ==  dwRet) 
	{
		//返回标志时区名,并将它赋值给m_strSysTimeZone,便于以后利用
		m_lBias = -tziOld.Bias;
		return m_lBias;
	}
	else
	{
		CString strMsgInfo;
		strMsgInfo.LoadString(IDS_STR_GET_SYSZONE_NOSECC);
		MessageBox(strMsgInfo);
	}
	return 0;
}
/**
************************************************************* 
* 函 数 名: SetUIFont()
* 描    述: 设置数字时间的字体大小
* 数 据 库: 无
* 数据库表: 无
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 创 建 人: 袁军
* 日    期: 2007/05/22
* 修改记录: 
*     修改人      修改日期      修改描述
*************************************************************
*/ 

void CTimeManagerView::SetUIFont(int WorldTimeZone)
{
	switch(WorldTimeZone) 
	{
	case -1: 
		{		
			//设置系统时区字体大小
			CFont m_FirstFont;
			CStatic* Firspctr = &m_sticTime;
			m_FirstFont.CreateFont(32,0,0,0,8,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("@system"));
			Firspctr->SetFont(&m_FirstFont);
			
			//设置第二时区字体大小
			CFont m_SecondFont;
			CStatic* Secondpctr = &m_sticSecondTime;
			m_SecondFont.CreateFont(28,0,0,0,8,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("@system"));
			Secondpctr->SetFont(&m_SecondFont);
			
			//设置的第三时区大小
			CFont m_ThirdFont;
			CStatic* Thirdpctr = &m_sticThirdTime;
			m_ThirdFont.CreateFont(28,0,0,0,8,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("@system"));
			Thirdpctr->SetFont(&m_ThirdFont);
			break;
		}
	case 0 : 
		{
			//设置系统时区字体大小
			CFont m_FirstFont;
			CStatic* Firspctr = &m_sticTime;
			m_FirstFont.CreateFont(32,0,0,0,8,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("@system"));
			Firspctr->SetFont(&m_FirstFont);
			break;
		}
	case 1: 
		{
			//设置第二时区字体大小
			CFont m_SecondFont;
			CStatic* Secondpctr = &m_sticSecondTime;
			m_SecondFont.CreateFont(28,0,0,0,8,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("@system"));
			Secondpctr->SetFont(&m_SecondFont);
			break;
		}
	case 2: 
		{
			//设置的第三时区大小
			CFont m_ThirdFont;
			CStatic* Thirdpctr = &m_sticThirdTime;
			m_ThirdFont.CreateFont(28,0,0,0,8,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("@system"));
			Thirdpctr->SetFont(&m_ThirdFont);
			break;
		}
	}
}


/**
************************************************************* 
* 函 数 名: SetTimeUpdateUI()
* 描    述: 根据时间的改变定时更新界面信息
* 数 据 库: 无
* 数据库表: 无
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 创 建 人: 袁军
* 日    期: 2007/05/22
* 修改记录: 修改了更新世界时区与天有关的信息
*     修改人:  袁军    修改日期: 2007/08/22      修改描述: 将过
      去判断更新星期日期与星期天的条件做了修改
*************************************************************
*/ 

void CTimeManagerView::SetTimeUpdateUI()
{
	SYSTEMTIME  SysTime;
	//获取系统时间信息,包括:年、月、日、星期、分、秒
	GetSystemTime(&SysTime);

	m_iYear = SysTime.wYear;
	m_iMonth = SysTime.wMonth;
	m_iDayOfWeek = SysTime.wDayOfWeek;
	m_iDay = SysTime.wDay;
	m_iHour = SysTime.wHour;
    int iMintue = SysTime.wMinute;
	int iSecond = SysTime.wSecond;
//	GetTimeZoneName();
	////////////////与秒有关的内容/////////////////////////////////
	/* 将系统时间显示在界面上 */
	m_strHour.Format(_T("%02d"), m_iHour);
	m_strMintue.Format(_T("%02d"),iMintue);
	m_strSecond.Format(_T("%02d"),iSecond);
	//组合系统时间(小时、分、秒)
	CString strSysTime = m_strHour + ":" + m_strMintue + ":" + m_strSecond;	
	m_sticTime.SetWindowText(strSysTime);
	SetUIFont(0);
	///////////////////////////////////////////////////////////////
/*
	CString strShowZoneName(GetTimeZoneName());
	//显示系统时区名
	if (strShowZoneName.GetLength() >21)
	{
		strShowZoneName = strShowZoneName.Mid(0,20) + _T("...");
	}
	m_btnFirstTimeZone.SetWindowText(strShowZoneName);
*/
	////////////////////与分有关的内容/////////////////////////////
	/*将世界时区的时间显示在界面上(不包括分钟)*/
	if (0 == iSecond || m_bUpdateMMTimeUI)
	{
		//第二时区的时间
		GetWorldTimeZoneInfo(m_strSelSecondTimeZoneName,m_iSecondYear, m_iSecondMonth,m_iSecondWeek, m_iSecondDay, m_iSecondHour, m_iSecondMinute, m_iSecondHourDiff, m_iSecondMintueDiff, m_ctrlSecondClock);
		
		//第三时区的时间
		GetWorldTimeZoneInfo(m_strSelThirdTimeZoneName,m_iThirdYear, m_iThirdMonth,m_iThirdWeek, m_iThirdDay, m_iThirdHour, m_iThirdMinute, m_iThirdHourDiff, m_iThirdMinuteDiff, m_ctrlThirdClock);

		//显示第二时区时间
		CString strSecondHour, strSecondMintue;
		strSecondHour.Format(_T ("%02d"), m_iSecondHour%24);	
		strSecondMintue.Format(_T("%02d"),m_iSecondMinute);
		CString strSecondTime = strSecondHour + ":" + strSecondMintue;
		m_sticSecondTime.SetWindowText(strSecondTime);
		SetUIFont(1);

		CString strThirdHour,strThirdMinute;
		strThirdHour.Format(_T ("%02d"), m_iThirdHour%24);
		strThirdMinute.Format(_T ("%02d"), m_iThirdMinute);

		//显示第三时区时间
		CString strThirdTime = strThirdHour + ":" + strThirdMinute;
		m_sticThirdTime.SetWindowText(strThirdTime);
		m_bUpdateMMTimeUI = FALSE;
		SetUIFont(2);
	}
	///////////////////////////////////////////////////////////////

    //////////////////////与日有关的内容///////////////////////////	
	if (((0 == iSecond) && (0 == iMintue) && (0 == m_iHour))|| m_bUpdateDayTimeUI)
	{
		//第二时区的时间
		GetWorldTimeZoneInfo(m_strSelSecondTimeZoneName,m_iSecondYear, m_iSecondMonth,m_iSecondWeek, m_iSecondDay,m_iSecondHour, m_iSecondMinute, m_iSecondHourDiff, m_iSecondMintueDiff, m_ctrlSecondClock);
		//第三时区的时间

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -