您的位置:首页 > 其它

MFC Date Time Picker的使用

2014-08-22 14:29 302 查看
1.往MFC界面上拖一个Date Time Picker控件,然后选中,右键添加一个变量 比如 m_dtCtrl;

2.获得该控件的时间

CTime m_date; //别看名字以为它只有时间,实际上它可以同时获得日期和时间信息

m_dtCtrl.GetTime(m_date);把控件里面的时间都获取到了m_date这个结构里面。需要哪些数据从m_date中取就可以了。

不过CTime只能表示1970-2037年的数据,要表示更长时间段,可以用COleDateTime,表示1900以后几千年的数据。

3.获取当前时间

方法一:

CTime
time ;

time
= CTime::GetCurrentTime();//是一个静态方法,静态方法可以直接类名::方法名调用。

将上述控件设置为当前时间:m_dtCtrl.SetTime(time);

日期格式化: CString
strDate =
time.Format(L"%Y-%m-%d"); //获取到的为日期 如:2010-03-05

方法二:

COleDateTime dateTest;

dateTest = COleDateTime::GetCurrentTime(); //是一个静态方法,静态方法可以直接类名::方法名调用。

将上述控件设置为当前时间:m_dtCtrl.SetTime(dateTest);

日期格式化同上。

4.如果有不需要显示日期的需求,可以在该控件属性窗口中,设置ShowNone为TRUE.

当不想显示日期的时候就写m_dtCtrl.SetTime();就可以达到目的了。

5.如果想查看当前控件checkbox情况,可以 m_dtCtrl.GetStatus()==0的时候是选中的,其他的是不选中和错误的情况

error = -1 ,valid = 0,invalid = 1, // Invalid date (out of range, etc.)null = 2, // Literally has no value

enum DateTimeStatus

{

error = -1,

valid = 0,

invalid = 1, // Invalid date (out of range, etc.)

null = 2, // Literally has no value

};

初始化控件:

CString m_strBirth = L"2015-04-18";

//解析生日字符串 然后初始化控件

int iIndex = m_strBirth.Find('-');

int iReverseIndex = m_strBirth.ReverseFind('-');

CString strYear = m_strBirth.Left(iIndex);

CString strDay = m_strBirth.Right(m_strBirth.GetLength() - iReverseIndex -1);

CString strMonth = m_strBirth.Mid(iIndex+1,(iReverseIndex-iIndex-1));

COleDateTime time(_ttoi(strYear),_ttoi(strMonth),_ttoi(strDay),0,0,0);

m_DateCtrl.SetTime(time);// CDateTimeCtrl m_DateCtrl;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: