本人在做一个项目,想在ListCtrl对象中内嵌一个CDateTimeCtrl对象,当点击ListCtrl对象的某一行的某一列时,可以动态显示一个CDateTimeCtrl对象,当用户选择完时间后,注销掉该CDateTimeCtrl对象,使用户选择的时间显示在对应的格子中。我的主要工作是在CDateTimeCtrl对象的OnKillFocus函数中实现的,即在该函数中实现向ListCtrl对象传递消息及注销掉该对象。但我发现一个问题,就是当我在点击CDateTimeCtrl对象的下拉按钮并选择某个时间的时候,OnKillFocus函数就执行了,也就是说,我所选择的时间还没有来得及反映到控件上,该控件就被注销了,不过好像只注销掉一半即下拉日历控件没有了,但日历控件还在。而显示在对应格子上的时间始终是当前的时间。我的问题就是怎么才能在选择完时间后再把控件注销掉,并且是一起注销掉。是不是不应该在OnKillFocus函数中实现,多谢!!!
解决方案 »
- 双缓冲问题,不能够正确的绘制出来
- 动态链接库
- CListCtrl的LVS_LIST样式,如何显示两列?
- <<精通MFC>>有关于COject句话看不懂,帮我解释一下
- 想做个网站,请教各位!
- 一个简单的问题,子类能否继承父类的构造函数和析构函数吗?
- 咨询OpenGL方面的问题
- 请问FillRect和Bitblt的有没有效率差别
- 对话框换肤后,主菜单不显示了
- 有关VC编辑器的讨论
- ShellExecute(NULL,_T("open"),"http://www.csdn.net",NULL,NULL,SW_SHOW);的问题
- 求,USB驱动开发(C8051F320控制器)示例代码 (另开帖追加100分...............)
在事件里设置list的itemtext之后,给list发消息,让list来销毁这个dtctrl如何?
先谢了!!
但是这样做的话,如果不操作CLOSEUP这样的动作的话,还是取不到时间.因此,还需要补充失去焦点ONKILLFOCUS函数的代码:
CString strTestDate;
m_DateTimeCtrl.GetWindowText(strTestDate); //获取当前显示在DATETIMECTRL中的时间
SetItemText(m_DateTimeCtrl.m_Item,m_DateTimeCtrl.m_subItem,strTestDate);