我新建了一个MFC DIALOG工程,添加一个DateTimePicker控件,并使一个CTime对象m_date与这个控件相关联,并初始化m_date=CTime::GetCurrentTime();然后添加如下代码:void CTestDateTimeCtrlDlg::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int i=m_date.GetDay();
        ..............
*pResult = 0;
}为什么i的取值不正确呢?

解决方案 »

  1.   


    楼主:CTime::GetCurrentTime()获取的是CTime类对象,而DateTimePicker控件对应的变量类型是COleDateTime,故需要修改!!如下:
    m_date=COleDateTime::GetCurrentTime();
    void CMyDlg::OnDtnDatetimechangeDatetimepicker1(NMHDR *pNMHDR, LRESULT *pResult)
    {
    LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    UpdateData(TRUE);
    int i=m_date.GetDay();
    CString str;
    str.Format("%d",i);
    AfxMessageBox(str);
      //查看i的值
    *pResult = 0;
    }