Click here to Skip to main content
11,928,605 members (51,107 online)
Click here to Skip to main content
Add your own
alternative version


42 bookmarked

MyCalendar Control

, 7 Aug 2005 CPOL
Rate this:
Please Sign up or sign in to vote.
An article on writing a calendar control using the Windows SDK.

MyCalendar test application


This article is about the MyCalendar control programmed with Windows SDK. It is developed to be easy to use in different types of applications. It represents dates according Gregorian calendar rules. Also supports Easter date calculation for Julian and Gregorian calendars and Gregorian representation of this calculation. Covers period from year 1582 (when Gregorian calendar was established) to year 4099.


This is a clone of the MFC CDateTimeCtrl with some advantages.

Using the code

To use the source provided, one must include the header files MyCalendar.h and create a CMyCalendar object like in the example below:

#include "MyCalendar.h"

CMyCalendar calendar;
RECT wndRect = {100,100,0,0};
calendar.Create( hParentWnd, &wndRect );

The width and the height of the calendar window rectangle are not important since a calendar has fixed size. Next, set some calendar properties:

calendar.SetRange( 2000, 3000 ); // Sets calendar year range
calendar.SetDate( 15, 12, 1978 ); // Sets custom date
calendar.Expand(TRUE); // Expands calendar window

After the user changes date or expands/collapses calendar window, the CMyCalendar control sends the following messages via the WM_COMMAND message:


Some features of the CMyCalendar control:

  • Get current date
  • Set custom date
  • Get calendar year range
  • Set custom calendar year range (from year 1582 to year 4099)
  • Get current calendar background color
  • Set custom calendar background color
  • Expand/Collapse calendar window
  • Set on/off Sunday mark
  • Set on/off Today mark
  • Set on/off Easter mark
  • Get current calendar Easter calculation method
  • Set calendar Easter calculation method

Points of Interest

Working on this interesting Windows control, I have found much interesting things on calendars all over the Internet. I hope to extend the current control to support other types of calendars.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer (Senior) Elektromehanika d.o.o. Nis
Serbia Serbia
He has a master degree in Computer Science at Faculty of Electronics in Nis (Serbia), and works as a C++/C# application developer for Windows platforms since 2001. He likes traveling, reading and meeting new people and cultures.

You may also be interested in...

Comments and Discussions

GeneralMala pomoć :) Pin
Member #395679226-Mar-07 11:30
memberMember #395679226-Mar-07 11:30 
AnswerRe: Mala pomoć :) Pin
darkoman26-Mar-07 20:32
memberdarkoman26-Mar-07 20:32 
GeneralRe: Mala pomoć :) Pin
Tijana126-Mar-07 23:33
memberTijana126-Mar-07 23:33 
AnswerRe: Mala pomoć :) Pin
darkoman27-Mar-07 9:36
memberdarkoman27-Mar-07 9:36 
Generalcharset selection Pin
Tomas Rapkauskas17-May-06 4:18
memberTomas Rapkauskas17-May-06 4:18 
GeneralMonths days Pin
Tomas Rapkauskas17-May-06 3:16
memberTomas Rapkauskas17-May-06 3:16 
GeneralRemember... Pin
chk15-Aug-05 10:05
memberchk15-Aug-05 10:05 
GeneralRe: Remember... Pin
darkoman15-Aug-05 13:10
memberdarkoman15-Aug-05 13:10 
GeneralBugs Pin
osy2-Aug-05 21:47
memberosy2-Aug-05 21:47 
GeneralRe: Bugs Pin
matrowang6-Jul-06 0:11
membermatrowang6-Jul-06 0:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.151126.1 | Last Updated 8 Aug 2005
Article Copyright 2005 by darkoman
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid