MFC Date Time Picker的使用

来源:互联网 发布:青岛网络干部学院app 编辑:程序博客网 时间:2024/04/29 05:17

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;


0 0
原创粉丝点击