日期控件(CDateTimeCtrl)
实现:
MFC向导创建对话框应用程序,在对话框模板上拖放CDateTimeCtrl所指定的控件,为控件添加变量:(CDateTimeCtrl 控件类型)m_dateTimeCtrl
在InitDialog消息里处理如下:
m_dateTimeCtrl.SetMonthCalColor(MCSC_TEXT,RGB(0,0,255));
CStringformatStr=_T("'今?天¬¨¬是º?: 'yyyy'/'MM'/'dd");
m_dateTimeCtrl.SetFormat(formatStr);//设¦¨¨定¡§控?件t的Ì?显?示º?格?式º?
//计?算?时º¡À间?的Ì?上¦?、¡é下?限T
COleDateTimeMinTime(COleDateTime::GetCurrentTime()-COleDateTimeSpan(30,0,0,0));
COleDateTimeMaxTime(COleDateTime::GetCurrentTime()+COleDateTimeSpan(30,0,0,0));
m_dateTimeCtrl.SetRange(&MinTime,&MaxTime);//设¦¨¨定¡§控?件t可¨¦选?的Ì?时º¡À间?范¤?围¡ì
LOGFONTlf;
memset(&lf,0,sizeof(lf));
lf.lfHeight=20;
strcpy(lf.lfFaceName,"新?宋?体¬?");
HFONThfont=::CreateFontIndirect(&lf);
m_dateTimeCtrl.SetMonthCalFont(hfont);
在对话框上添加一个按钮,用户获取当前时间:
void CMonthCalendar_TestDlg::OnBnClickedButton1()
{
// TODO: 在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä|理¤¨ª程¨¬序¨°代䨲码?
CStringmsg;
CTimeMinTime,MaxTime;
DWORDresult=m_dateTimeCtrl.GetRange(&MinTime,&MaxTime);//获?取¨?时º¡À间?段?
msg=_T("\n可¨¦选?时º¡À间?的Ì?下?限T: ");
if(result&GDTR_MIN)
msg+=MinTime.Format("%#x");
else
msg+=_T("None.");
msg+=_T("\n可¨¦选?时º¡À间?的Ì?上¦?限T: ");
if(result&GDTR_MAX)
msg+=MaxTime.Format("%#x");
else
msg+=_T("None.");
CTimetime;
m_dateTimeCtrl.GetTime(time);
msg+=_T("\n当Ì¡À前¡ã设¦¨¨定¡§时º¡À间?: ");
msg+=time.Format("%#c");
AfxMessageBox(msg);
}