如题。
控件:listcontrol,datetimepicker,edit若干。
目的:点击listcontrol控件中的某一列数据(该列数据中含有一个时间值,2010-9-6),要求该列所有数据均显示在相应的edit控件中,时间值显示在datetimepicker控件中。
问题:点击某列数据后,其余数据均可以显示,唯独时间不能显示到datetimepicker控件中。datetimepicker控件中显示的仍然是它默认的值(一般都是用户计算机默认的系统时间)。
请问怎么样才能将时间显示到datetimepicker控件中呢?在线等。
(数据库中的时间值设置的是datetime型。SQLserver2000)。
下面是单击listcontrol控件的代码:
void CExecuteDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CTime time;
m_birthday.GetTime(time);//m_birthday是在Wizard里面设置的datetimepicker控件的变量类型,CDateTimeCtr型
CString strbirth=time.Format("%y-%m-%d");
         //将listcontril控件中的值显示在控件中
int pos = m_Grid.GetSelectionMark();
m_ID = m_Grid.GetItemText(pos,0);
m_Name = m_Grid.GetItemText(pos,1);
m_Dep = m_Grid.GetItemText(pos,2);
m_Lab = m_Grid.GetItemText(pos,3);
strbirth=m_Grid.GetItemText(pos,4);//将数据库中的时间显示在DateTimePicker控件中,但是还没有实现
ID = atoi(m_ID);
UpdateData(FALSE);
*pResult = 0;
}
问题主要在倒数第四句中。

解决方案 »

  1.   

    你是要把文字转成日期吧,用COleDateTime类倒是有一个现成的函数ParseDateTime可以转换,另外DateTimePicker控件是可以绑定到COleDateTime变量的
      

  2.   

    不是要转,因为数据库中本来就是datetime类型的。
    至于ParseDateTime函数和那个绑定,能不能具体一点呢?
      

  3.   

    CString year,month,day,strbirth;
    year=strbirth.Left(4);
    strbirth=strbirth.Right(strbirth.GetLength()-strbirth.Find("-")-1);
    month=strbirth.Left(strbirth.Find("-"));
    day=strbirth.Right(strbirth.GetLength()-strbirth.Find("-")-1);
    int y=atoi(year);
    int m=atoi(month);
    int d=atoi(day);

    CTime time;
    m_birthday.SetTime(&time);
    从网上查的用上面的代码,但是我用了,结果还是不能显示。
      

  4.   

    其实主要是你即绑定了控件对象,又绑定了变量对象
    虽然最后设置了时间Settime,但紧接着updatedate,又将默认的变量值更新到了界面