已经关联了控件
DDX_Control(pDX, IDC_DATETIMEPICKER_TIME, InputTime);
CString CAddDlg::GetData()
{
CTime tempTime;
UpdateData(TRUE);加不加这句显示的时间都是1970-01-01
InputTime.GetTime(tempTime);
CString retTime = tempTime.Format("%Y-%m-%d");
AfxMessageBox(retTime);
return retTime;//如果直接返回一个 L"2010-01-23"则是正确的 返回GetTime获得的时间则会提示 参数错误
}CString dt = adddlg.GetData();
dt += "   0:0:0";
AfxMessageBox(dt);
COleVariant vtime(dt);
vtime.ChangeType(VT_DATE);
COleDateTime t4 = vtime;
SYSTEMTIME systemtime;
VariantTimeToSystemTime(t4, &systemtime);
CTime tm(systemtime);// 参数错误应该说的这里我用的 Visual studio 2008
win7系统请问该怎么写呢?获取控件的时间

解决方案 »

  1.   

    //如果直接返回一个 L"2010-01-23"则是正确的 返回GetTime获得的时间则会提示 参数错误
    ---------
    说得不清不楚的
    那你看看返回retTime时,这个是什么值啊
      

  2.   

    那你InputTime初始化的时候设置的什么值啊
    就是调用SetTime()设置的时间是怎么来的
      

  3.   

    CDateTimeCtrl InputTime;
    这个 InputTime和那个date time picker控件关联了我就想获取date time picker控件显示的日期时间
      

  4.   

    额 初始化...额...
    有一个 AddDlg的窗体 在.h文件里声明了一个 CDateTimeCtrl 的对象 InputTime
    然后就直接 用InputTime.GetTime来获取控件的日期
      

  5.   

    CDateTimeCtrl控件在关联CTime的日期时间时,需要初始化,要不就会得到1970-01-01之类的日期。
    故你在初始化的时候加上一句InputTime=CTime::GetCurrentTime()
      

  6.   

    额 初始化...额...
    有一个 AddDlg的窗体 在.h文件里声明了一个 CDateTimeCtrl 的对象 InputTime
    然后就直接 用InputTime.GetTime来获取控件的日期
    ------------------------------------------------------
    CDateTimeCtrl 控件也是要你初始化时间的,
    否则默认了
      

  7.   

    CTime t = CTime::GetCurrentTime();控件关联是这样写的吗?
    DDX_Control(pDX, IDC_DATETIMEPICKER_TIME, InputTime);
    这个 InputTime是CDateTimeCtrl InputTime;CTime tempTime;我把tempTime初始化也还是错误的
      

  8.   

    我照MSDN上边做,会出现异常
    http://msdn.microsoft.com/en-US/library/yt32ce9h(v=VS.80).aspx在这句 ::SendMessage(m_hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM) &sysTime);
    winctrl5.cpp文件里的
    DWORD CDateTimeCtrl::GetTime(_Out_ CTime& timeDest) const
    {
    SYSTEMTIME sysTime;
    DWORD dwResult = (DWORD)
    ::SendMessage(m_hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM) &sysTime); if (dwResult == GDT_VALID)
    timeDest = CTime(sysTime); return dwResult;
    }
      

  9.   

    试试一下代码
    CTime time;
    CDateTimeCtrl* pDate = (CDateTimeCtrl*)GetDlgItem(控件ID);
    pStartDate->GetTime(time);
      

  10.   

    额 在说明一下
    我做的这个小东西,首先有个 mainform 然后点击 add 按钮 后,在add按钮里 有那个date time picker控件。
    应该没什么区别的呀。
      

  11.   

    照我的那样 两个 Form 会出现 TODO:<文件说明> 停止工作
      

  12.   

    关联变量变量类型选CTime类,这样好操作一点:
    DDX_DateTimeCtrl(pDX, IDC_BORNDATE, m_BornDate);这样的话,在程序或对话框OnInitDialog()中进行初始化,如下:
    InputTime=CTime::GetCurrentTime()如果要用到这个控件的时间,直接用=号就可以了。
    CTime tempTime;
    tempTime=InputTime;
    CString retTime = tempTime.Format("%Y-%m-%d");试试以上的方式。
      

  13.   


    InputTime=CTime::GetCurrentTime();
    我在OnInitDialog里对控件进行初始化,但是控件上边显示的时间是1970-01-01呢?
      

  14.   

    在OnInitDialog()
    的后面加上一句UpDateData(false)即可显示出正确的时间。