// CWzCalendarCtrl message handlers void CWzCalendarCtrl::OnPaint() { CPaintDC dc(this); // device context for painting CRect rcClient; GetClientRect(rcClient); CMemoryDC memDC(&dc,&rcClient); DrawCalendar(&memDC, rcClient); }
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; }