どのように空の日付を日付時間選択コントロールCDate TimeCtrlの初期値に設定しますか?


http://support.microsoft.com/kb/238077/zh-cn
 
デフォルトでは、Windows日時選択器コントロールとMicrosoft日付時間選択器ActiveXコントロールは、現在の日付を初期値としています.ここでは、空の日付をコントロールの初期値に設定する方法を紹介します.
 
Windows日時選択器コントロールとMicrosoft日付時間選択器ActiveXコントロールの変更に必要な時間が経過したら、現在の日付を空白に設定しても、SetWindowTextを呼び出して空の文字列をパラメータとして使用します.以下の手順では、Microsoft日付時間選択器ActiveXコントロールの初期値が空に設定されている日付について説明します.
  • カスタムフォーマットとして入力し、カスタムフォーマットを空白の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)
    						
    注:ビューStudio.NETを使用して以下の操作を実行すると、プロパティブラウザ上でイベントtavを追加し、Changeイベントのイベントハンドラをダイアログクラスに追加します.
  • イベントハンドラ(OnChengDtPicker 1)でフォーマットを変更してこのフォーマットに戻す必要があります.
       void CDtpickerDlg::OnChangeDtpicker1() 
       {
           m_datePicker.SetFormat(1);
       }
    						
  • 同様の論理を使用して、空の日付をWindows標準日時選択コントロールの初期値に設定できます.
  • は、パラメータとしてSet Formatの空の文字列を呼び出します.
    m_dateCtrl.SetFormat(" "); //one blank
  • ダイアログクラスにDTN_を追加します.DATETIMECHANGEメールの通知メッセージ処理プログラムは、以下のコードを追加します.必要な書式の書式タイプに変更します.
       void CDateTimeCtrlDlg::OnDateTimeChange(NMHDR *pNotifyStruct, LRESULT    *result)
       {
            m_dateCtrl.SetFormat(DTS_SHORTDATEFORMAT);
            *pResult = 0;
       }