http://support.microsoft.com/kb/238077/zh-cn
默认情况下,Windows 日期时间选取器控件 (CDateTimeCtrl) 和 Microsoft 日期时间选取器 ActiveX 控件具有当前日期作为初始的值。本文介绍了如何将一个空的日期设置为这些控件的初始值。
Windows 时间日期选取器控件和 Microsoft 日期时间选取器 ActiveX 控件更改所需的时间后将当前日期,即使您将其设置为空白通过调用 SetWindowText 用空字符串作为参数。
以下步骤描述了一种为 Microsoft 日期时间选取器 ActiveX 控件的初始值设置为空的日期。
- 更改格式键入为自定义格式 (3),并将自定义格式设置为其中一个空白 string.m_datePicker 是为 Windows 日期时间选择器控件创建的成员变量对话框上放置。
BOOL CDtpickerDlg::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon m_datePicker.SetFormat(3); // Change the format type to custom format. m_datePicker.SetCustomFormat(" "); // One blank string. return TRUE; // return TRUE unless you set the focus to a control }
- 在对话框类使用类向导中添加,Change 事件的事件处理程序。
ON_EVENT(CDtpickerDlg, IDC_DTPICKER1, 2,OnChangeDtpicker1,VTS_NONE)
- 在事件处理程序 (OnChangeDtPicker1) 更改格式回该格式所需。
void CDtpickerDlg::OnChangeDtpicker1() { m_datePicker.SetFormat(1); }
您可以使用相似的逻辑将空的日期设置为 Windows 标准日期时间选择器控件的初始值。
- 呼叫 SetFormat 一个空字符串作为参数。
m_dateCtrl.SetFormat(" "); //one blank
- 在对话框类中添加 DTN_DATETIMECHANGE 邮件的通知消息处理程序,并向其添加下面的代码。更改为所需的格式的格式类型。
void CDateTimeCtrlDlg::OnDateTimeChange(NMHDR *pNotifyStruct, LRESULT *result) { m_dateCtrl.SetFormat(DTS_SHORTDATEFORMAT); *pResult = 0; }