- // we show only one full month but there can be some days from the month
- // before it and from the one after it so days from 3 different months can
- // be partially shown
- MONTHDAYSTATE states[3] = { 0 };
- const int nMonths = MonthCal_GetMonthRange(GetHwnd(), GMR_DAYSTATE, NULL);
+ // Currently the native control may show more than one month if its size is
+ // big enough. Ideal would be to prevent this from happening but there
+ // doesn't seem to be any obvious way to do it, so for now just handle the
+ // possibility that we can display several of them: one before the current
+ // one and up to 12 after it.
+ MONTHDAYSTATE states[14] = { 0 };
+ const DWORD nMonths = MonthCal_GetMonthRange(GetHwnd(), GMR_DAYSTATE, NULL);