void CNewDiary::OnSelectNewDate(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
CTime time;
CMonthCalCtrl* pCtrl = (CMonthCalCtrl*) GetDlgItem(IDC_NEW_DATE);      //¶Ô»°¿òÖÐÈÕÆڿؼþµÄID
ASSERT(pCtrl != NULL); pCtrl->GetCurSel(time);
CString strTime = time.Format("%Y-%m-%d");
MessageBox(strTime);
pApp->m_NewDate=strTime;
*pResult = 0;
}
选择的是2005-6-21
但得到的是2005-9-2?

解决方案 »

  1.   

    SYSTEMTIME time;
    CMonthCalCtrl* pCtrl = (CMonthCalCtrl*) GetDlgItem(IDC_NEW_DATE);
    ASSERT(pCtrl != NULL);
    pCtrl->GetCurSel(&time);
    CString strYear,strMonth,strDay;
    strYear.Format("%d年",time.wYear);
    strMonth.Format("%d月",time.wMonth);
    strDay.Format("%d日",time.wDay);
    MessageBox(strYear+strMonth+strDay);

    *pResult = 0;
      

  2.   

    必须使用SYSTEMTIME,否则日期不正确