高分求救!mfc bug??

zhongxd 2003-03-24 08:40:58
本人在弄日历控件的时候,mcn_selchange 改变日历的当前值,然后用GetCurSel获得日期 ,用COleDateTime作为参数,然后用GetYear() GetMonth() GetDay()获得日期,发现得到的值都是-1,显然错误;然后尝试改用CTime作为参数 进行同样的操作,选定的日期是 2003.03.20 得到的日期却是2003.04.01,显然也不对,哪位大虾弄过这方面的东东,指点一下迷津!谢谢!
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
王国凡 2003-03-25
  • 打赏
  • 举报
回复
高分求救? 你的分呢
王国凡 2003-03-24
  • 打赏
  • 举报
回复
假定 DateTimeCtrl 的 ID 为 IDC_DTP_TODAY, 可以这么设置它的日期, 下面是设置为当前日期,这里我用的是 CTime
CTime theTime;
CDateTimeCtrl *pdtp;

pdtp = (CDateTimeCtrl *)GetDlgItem(IDC_DTP_TODAY);

CString strTime;
theTime = CTime::GetCurrentTime();

SYSTEMTIME sysTime;
memset(&sysTime, 0, sizeof(sysTime));
sysTime.wYear = theTime.GetYear(); //可以是 int/long
sysTime.wMonth = theTime.GetMonth(); //可以是 int/long
sysTime.wDay = theTime.GetDay(); //可以是 int/long
VERIFY(pdtp->SetTime(&sysTime));
菜牛 2003-03-24
  • 打赏
  • 举报
回复
MCN_SELCHANGE是一个通知消息,由日历控件发出。MCM_SETCURSEL才是命令消息,控制控件的行为。你用错了,所以不是什么BUG。
菜牛 2003-03-24
  • 打赏
  • 举报
回复
应该用MCM_SETCURSEL改变日历的当前值。
GoldenSword 2003-03-24
  • 打赏
  • 举报
回复
果然不对头,不过用SYSTEMTIME就可以

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧