コード例 #1
0
// CWzCalendarCtrl message handlers
void CWzCalendarCtrl::OnPaint()
{
    CPaintDC dc(this); // device context for painting
	
    CRect rcClient;
	GetClientRect(rcClient);

	CMemoryDC memDC(&dc,&rcClient);
    DrawCalendar(&memDC, rcClient);
}
コード例 #2
0
int calendar_handler(int type, int par1, int par2)
{
 if (type == EVT_SHOW) {
 	 GenerateCalendar();
 	 DrawCalendar();
 }
 if (type == EVT_ORIENTATION) {
	 SetOrientation(par1);
 	 GenerateCalendar();
 	 DrawCalendar();
 }
 if (type==EVT_KEYPRESS)
 	switch(par1)
 		{
 		 case KEY_LEFT:
		 case KEY_PREV:
		 case KEY_PREV2:
			if (year>1)
 		 		{
 		 		 year--;
		 	 	 if (year%4==0)
 	 			 	LongYear=1;
		 	 	 	else
 	 			 	LongYear=0;
		 	 	 if (LongYear && year%100==0 && year%400!=0)
 	 			 	LongYear=0;
 		 		 FirstDay=(FirstDay+371-365*(1-LongYear)-366*LongYear)%7;
			 	 GenerateCalendar();
			 	 DrawCalendar();
 		 		}
 		 	break;

 		 case KEY_RIGHT:
		 case KEY_NEXT:
		 case KEY_NEXT2:
			if (year<10000)
 		 		{
		 	 	 if (year%4==0)
 	 			 	LongYear=1;
		 	 	 	else
 	 			 	LongYear=0;
		 	 	 if (LongYear && year%100==0 && year%400!=0)
 	 			 	LongYear=0;
 		 		 FirstDay=(FirstDay+365*(1-LongYear)+366*LongYear)%7;
 		 		 year++;
			 	 GenerateCalendar();
			 	 DrawCalendar();
 		 		}
 		 	break;

		 case KEY_OK: 		 
 		 case KEY_BACK:
			CloseApp();
 		 	break;
 		}

#ifndef BASIC
  if (type == EVT_POINTERUP)
  {
	if (par1 > (ScreenWidth() - HeaderWidth) / 2 - 10 && par1 < (ScreenWidth() - HeaderWidth) / 2 + SymbolWidth + 10 &&
			par2 > 0 && par2 < 40)
		{
			calendar_handler(EVT_KEYPRESS, KEY_LEFT, 0);
		}
	if (par1 > (ScreenWidth() + HeaderWidth) / 2 - SymbolWidth - 10 && par1 < (ScreenWidth() + HeaderWidth) / 2 + 10 &&
			par2 > 0 && par2 < 40)
		{
			calendar_handler(EVT_KEYPRESS, KEY_RIGHT, 0);
		}
  }
#endif

  return 0;

}