我用CMonthCalCtrl控件,当我点击别的日期,要显示出来,
结果第一次总是我点击日期的后3天,然后再点击一下日期,
就会显示,还是出现后面第三天的日期?(这是我直接在
CMonthCalCtrl控件的OnSelectMonthcalendar1中完成的)
   如果我用按钮来实现,则只是第一次出现的日期不对,显示的
是其后三天的日期,后面显示都是对的。这是咋回事呢?

解决方案 »

  1.   

    不是吧
    void CCalendarDlg::OnSelectMonthcalendar1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    CTime tm;
    this->m_MonthCalCtrl.GetCurSel(tm);
             CString date;
    date.Format("%d年%d月%d日",tm.GetYear(),tm.GetMonth(),tm.GetDay());
    MessageBox(date);
    }
    就这么几行,然后我点击MonthCalCtrl控件,点第一行出现的时间比所点击的推迟一天,
    点击第二行的时间,显示的时间向后推迟2天,
    点击第三行的时间,显示的时间向后推迟3天,
    点击第四行的时间,显示的时间向后推迟4天,咋回事呢》?
      

  2.   

    只有这样才能获得正确的日期:
    SYSTEMTIME DateTime;
    m_MonthCalCtrl.GetCurSel(&DateTime);
    对于另外两个函数,
    BOOL GetCurSel( COleDateTime& refDateTime ) const;
    BOOL GetCurSel( CTime& refDateTime ) const;
    都不能获取正确日期,我也不知为什么,还望高手请教