共用方式為


如何處理日期和時間選擇器通知

本節示範如何處理日期和時間選擇器通知。

您需要知道的事項

技術

必要條件

  • C/C++
  • Windows 使用者介面程序設計

指示

當事件通常是由使用者輸入觸發的事件時,日期和時間選擇器 (DTP) 控制項會將通知訊息傳送至父視窗。 您的應用程式必須包含程序代碼,才能判斷通知訊息的類型,並適當地回應。

如果您打算在應用程式中搭配 DTP 控制程式使用回呼欄位,您必須準備好處理 DTN_FORMATQUERYDTN_FORMATDTN_WMKEYDOWN 通知碼。 如需回呼欄位的其他資訊,請參閱 回呼欄位

下列 C++ 程式代碼範例會識別 DTP 控制項所傳送的通知訊息,並呼叫適當的應用程式定義函式。 如需程式代碼範例,請參閱下列主題,以說明如何處理此範例中顯示的通知。

主題
如何處理DTN_DATETIMECHANGE通知
如何處理DTN_FORMATQUERY通知
如何處理DTN_FORMAT通知
如何處理DTN_WMKEYDOWN通知

 

BOOL WINAPI DoNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
    LPNMHDR hdr = (LPNMHDR)lParam;

    switch(hdr->code){

        case DTN_DATETIMECHANGE:{
            LPNMDATETIMECHANGE lpChange = (LPNMDATETIMECHANGE)lParam;
            DoDateTimeChange(lpChange);
        }
        break;

        case DTN_FORMATQUERY:{
            LPNMDATETIMEFORMATQUERY lpDTFQuery = (LPNMDATETIMEFORMATQUERY)lParam;

            // Process DTN_FORMATQUERY to ensure that the control
            // displays callback information properly.
            DoFormatQuery(hdr->hwndFrom, lpDTFQuery);
        }
        break;

        case DTN_FORMAT:{
            LPNMDATETIMEFORMAT lpNMFormat = (LPNMDATETIMEFORMAT) lParam;

            // Process DTN_FORMAT to supply information about callback
            // fields (fields) in the DTP control.
            DoFormat(hdr->hwndFrom, lpNMFormat);
        }
        break;

        case DTN_WMKEYDOWN:{
            LPNMDATETIMEWMKEYDOWN lpDTKeystroke = 
                            (LPNMDATETIMEWMKEYDOWN)lParam;

            // Process DTN_WMKEYDOWN to respond to a user's keystroke in
            // a callback field.
            DoWMKeydown(hdr->hwndFrom, lpDTKeystroke);
        }
        break;
    }

    // All of the above notifications require the owner to return zero.
    return FALSE;
}

日期和時間選擇器通知

日期和時間選擇器控件參考

使用日期和時間選擇器控制件

日期和時間選擇器