通过发送消息DTM_SETFORMAT,可以任意的改变控件的显示格式: 在对话框的OnInitDialog函数用下面的代码: GetDlgItem(IDC_DTP)->SendMessage(DTM_SETFORMAT,0,(LPARAM)("'Today is: 'hh':'m':'s ddddMMMdd', 'yyy"));//IDC_DTP是控件的ID m_t.SendMessage(DTM_SETFORMAT,0,(LPARAM)("'Today is: 'hh':'m':'s ddddMMMdd', 'yyy")); //m_t也是CDateTimeCtrl类型的。 两种方法我都试过,没有问题的。 May You Success!
//m_t也是CDateTimeCtrl类型的。 两种方法我都试过,没有问题的。 May You Success!
我要的效果:
CDateTimeCtrl控件初始化时显示为空,然后可以通过鼠标点击选择日期,如果有日期,可以删除。
我的处理方式:
拖了个CDateTimeCtrl控件到对话框,修改属性allow edit为true,初始化时改变格式为空,在DTN_DATETIMECHANGE中把格式改为DTM_SHORTDATEFORMAT,然后在NM_KILLFOCUS中通过对控件进行
getwindowtext获取值来判断是否为空来处理。
问题:
空间如果有日期,可以删除,但无法保存,失去焦点依然会显示上次鼠标选择的日期。既通过getwindowtext获取依然有值,不为空。如何能获得空值?
另外我想在CDateTimeCtrl控件PreTranslateMessage中捕获wm_keydown中的删除按键,但好象捕获不了,似乎按键根本没触发,大惑不解。