// 头文件中添加
CMonthCalCtrl m_calendar;
// DoDataExchange(CDataExchange* pDX)中添加
DDX_Control(pDX, IDC_CALENDAR, m_calendar);
// 以下是MCN_SELCHANGE消息响应函数
void CCalendarDemoDlg::OnSelchangeCalendar(NMHDR* pNMHDR, LRESULT* pResult)
{
//获取控件当前所选日期
SYSTEMTIME st = {0};
m_calendar.GetCurSel(&st);
//清空小时、分钟等成员,否则在后续计算中将得到错误的结果
st.wHour = st.wMinute = st.wSecond = st.wMilliseconds = 0;
//得到当年的1月1日
CTime timeBegin(st.wYear, 1, 1, 0, 0, 0);
//得当所选日期和该年1月1日的差值
CTime timeSel(st);
CTimeSpan ts = timeSel - timeBegin;
//根据差值得到日期数
TCHAR szOutput[128] = {0};
_stprintf(szOutput, _T("%d年%d月%d日是%d年的第%d天。"),
timeSel.GetYear(), timeSel.GetMonth(), timeSel.GetDay(),
timeSel.GetYear(), ts.GetDays() + 1);
//输出结果
SetDlgItemText(IDC_OUTPUT, szOutput);
*pResult = 0;
}
// 附加真实图