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

📄 calender.cpp

📁 日历管理器的上位机开发程序
💻 CPP
字号:
#include<afxwin.h>
#include"calender.h"

int CCalender::m_cnDAY = 3;			//WEDNESDAY
int CCalender::m_cnYEAR = 2003;		//CURRENT YEAR
int CCalender::m_nUserYear = 2003;
COLORREF CCalender::m_crWindow	  = RGB(255,255,255);
COLORREF CCalender::m_crMonths	  =	RGB(0  ,0  ,255);
COLORREF CCalender::m_crWeekdays  = RGB(0  ,255,0  );
COLORREF CCalender::m_crDays	  = RGB(255,0  ,0  );
COLORREF CCalender::m_crToday	  = RGB(255,0  ,0  );
COLORREF CCalender::m_crTodaysBox = RGB(255,255,255);
//--------------------------------------------------------------------------
CCalender::CCalender()
{
	m_nUserYear = m_cnYEAR;
}
//--------------------------------------------------------------------------
void CCalender::SetYear(int nYear=2003)
{
	int nDiff = 0;
	int nLeapYear = 0;
	int i = 0;
	
	m_nUserYear = nYear;
	m_cnDAY = 3;		//Wednesday 1st Jan 2003
	
	if( m_cnYEAR > nYear )
	{
		nDiff = m_cnYEAR - nYear;
		for( i=nYear; i<m_cnYEAR; i++ )
		{
			if( i%4 == 0 )
				nLeapYear++;
		}
		nDiff += nLeapYear;
		nDiff = nDiff % 7;
		for( i=nDiff; i>=1; i-- )
		{
			m_cnDAY--;
			if( m_cnDAY<0 )
				m_cnDAY = 6;
		}
	}
	else if( m_cnYEAR < nYear )
	{
		nDiff = nYear - m_cnYEAR;
		for( i=m_cnYEAR; i<nYear; i++ )
		{
			if( i%4 == 0 )
				nLeapYear++;
		}
		nDiff += nLeapYear;
		nDiff = nDiff % 7;
		for( i=nDiff; i>=1; i-- )
		{
			m_cnDAY++;
			if( m_cnDAY >= 7 )
				m_cnDAY = 0;
		}
	}
}
//--------------------------------------------------------------------------
int CCalender::GetYear()
{	return m_nUserYear;	}
//--------------------------------------------------------------------------
void CCalender::ShowDay(CDC *d)
{
	int nX = 5;
	int nY = 50;
	int i,j,k;
	i = j = k = 0;
	
	CString m_szDays[7];

	m_szDays[0] = "Sun";
	m_szDays[1] = "Mon";
	m_szDays[2] = "Tue";
	m_szDays[3] = "Wed";
	m_szDays[4] = "Thu";
	m_szDays[5] = "Fri";
	m_szDays[6] = "Sat";

	d->SetBkMode(TRANSPARENT);
	d->SetTextColor(m_crDays);

	for( i=0; i<4; i++ )
	{
		for( j=0; j<3; j++ )
		{
			for( k=0; k<7; k++ )
			{				
				d->TextOut(nX,nY,m_szDays[k],3);
				nX += 35;				
			}
			nX += 23;
		}
		nX = 5;
		nY += 185;
	}
};
//--------------------------------------------------------------------------
void CCalender::ShowMonth(CDC *d)
{
	CFont myfont;

	myfont.CreateFont(20,10,0,0,0,0,0,0,0,0,0,0,0,"Arial");
	d->SelectObject(&myfont);
	d->SetBkMode(TRANSPARENT);
	d->SetTextColor(m_crMonths);
	

	d->TextOut(85 ,22 ,"January");	
	d->TextOut(352,22 ,"Febuary");
	d->TextOut(632,22 ,"March");
	d->TextOut(103,208,"April");	
	d->TextOut(370,208,"May");
	d->TextOut(635,208,"June");
	d->TextOut(103,392,"July");	
	d->TextOut(360,392,"August");
	d->TextOut(615,392,"September");
	d->TextOut(85 ,578,"Octuber");	
	d->TextOut(345,578,"November");
	d->TextOut(615,578,"December");
}
//--------------------------------------------------------------------------
void CCalender::ShowCalender(CDC *d)
{
	int i,j,k,count;
	int x = 5;
	int y = 82;
	int CurDay;
	int CurMonth;
	int Month;
	char str[3];
	int m_nMonths[12];

	CTime T = CTime::GetCurrentTime();

	CurDay = T.GetDay();
	CurMonth = T.GetMonth();
	
	m_nMonths[0]  = 31;
	m_nMonths[1]  = ( m_nUserYear%4 == 0 )? 29 : 28;		
	m_nMonths[2]  = 31;
	m_nMonths[3]  = 30;
	m_nMonths[4]  = 31;
	m_nMonths[5]  = 30;
	m_nMonths[6]  = 31;
	m_nMonths[7]  = 31;
	m_nMonths[8]  = 30;
	m_nMonths[9]  = 31;
	m_nMonths[10] = 30;
	m_nMonths[11] = 31;

	count = i = j = k = 0;
	
	d->SetBkMode(TRANSPARENT);
	Month=1;
	for(j=0; j<4; j++ )
	{
		for( k=0; k<3; k++ )
		{
			if     ( j==0 && k==0 )	{	x = 5;   y = 82;	}
			else if( j==0 && k==1 )	{	x = 270; y = 82;	}
			else if( j==0 && k==2 )	{	x = 540; y = 82;	}
			else if( j==1 && k==0 )	{	x = 5;   y = 265;	}
			else if( j==1 && k==1 )	{	x = 270; y = 265;	}
			else if( j==1 && k==2 )	{	x = 540; y = 265;	}
			else if( j==2 && k==0 )	{	x = 5;   y = 448;	}
			else if( j==2 && k==1 )	{	x = 270; y = 448;	}
			else if( j==2 && k==2 )	{	x = 540; y = 448;	}
			else if( j==3 && k==0 )	{	x = 5;   y = 631;	}
			else if( j==3 && k==1 )	{	x = 270; y = 631;	}
			else if( j==3 && k==2 )	{	x = 540; y = 631;	}

			x += m_cnDAY*35;
			
			for( i=1; i<=m_nMonths[count]; i++ )
			{
				
				if( CurDay == i && CurMonth == Month )
				{
					d->SetTextColor( m_crToday );
					sprintf(str,"%3d",i);
					d->TextOut(x,y,str,strlen(str));					
				}
				else
				{
					d->SetTextColor( (m_cnDAY==0)? m_crWeekdays : RGB(0,0,0));
					sprintf(str,"%3d",i);
					d->TextOut(x,y,str,strlen(str));
				}
	
				x+=35;
				m_cnDAY++;

				if( m_cnDAY>=7 )
				{
					m_cnDAY = 0;
					if( k==0 ) x=5;
					if( k==1 ) x=270;
					if( k==2 ) x=540;
					y+=20;
				}		
			}			
			count++;
			Month++;
		}		
	}
}
//--------------------------------------------------------------------------
void CCalender::SetDaysColor(COLORREF crColor)
{	m_crDays = crColor;	}
//--------------------------------------------------------------------------
void CCalender::SetMonthsColor(COLORREF crColor)
{	m_crMonths = crColor;	}
//--------------------------------------------------------------------------
void CCalender::SetTodayColor(COLORREF crColor)
{	m_crToday = crColor;	}
//--------------------------------------------------------------------------
void CCalender::SetTodaysBoxColor(COLORREF crColor)
{	m_crTodaysBox = crColor;	}
//--------------------------------------------------------------------------
void CCalender::SetWindowColor(COLORREF crColor)
{	m_crWindow = crColor;	}
//--------------------------------------------------------------------------
void CCalender::SetWeekdaysColor(COLORREF crColor)
{	m_crWeekdays = crColor;	}
//--------------------------------------------------------------------------
COLORREF CCalender::GetDaysColor()
{	return m_crDays;	}
//--------------------------------------------------------------------------
COLORREF CCalender::GetMonthsColor()
{	return m_crMonths;	}
//--------------------------------------------------------------------------
COLORREF CCalender::GetTodayColor()
{	return m_crToday;	}
//--------------------------------------------------------------------------
COLORREF CCalender::GetTodaysBoxColor()
{	return m_crTodaysBox;	}
//--------------------------------------------------------------------------
COLORREF CCalender::GetWindowColor()
{	return m_crWindow;	}
//--------------------------------------------------------------------------
COLORREF CCalender::GetWeekdaysColor()
{	return m_crWeekdays;	}
//--------------------------------------------------------------------------

⌨️ 快捷键说明

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