共用方式為


如何處理DTN_WMKEYDOWN通知

本主題示範如何處理 DTN_WMKEYDOWN 通知。 處理此通知代碼可讓控制項的擁有者在控制項的回呼欄位中對按鍵動作提供特定回應。

您需要知道的事項

技術

先決條件

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

說明

日期和時間選擇器 (DTP) 控制項會傳送 DTN_WMKEYDOWN 訊息,以報告使用者在回呼字段中輸入輸入。 如果您想要模擬標準 DTP 字段支援的相同鍵盤回應,或提供自定義回應,您的應用程式必須包含程式代碼來處理此通知。

下列C++程式代碼範例是應用程式定義的函式,可處理 DTN_WMKEYDOWN 通知。

安全性警告: 使用 lstrcmp 不正確可能會危害應用程式的安全性。 例如,在下列程式代碼範例中呼叫 lstrcmp 之前,您應該確定兩個字串都是以 null 終止。 您應該先查看 安全性考量:Microsoft Windows 控制項 再繼續。

//  DoWMKeydown increments or decrements the day of month according 
//  to user keyboard input.

void WINAPI DoWMKeydown(
 HWND hwndDP,
 LPNMDATETIMEWMKEYDOWN lpDTKeystroke)
{
    int delta =1;
    if(!lstrcmp(lpDTKeystroke->pszFormat,L"XX")){
        switch(lpDTKeystroke->nVirtKey){
            case VK_DOWN:
            case VK_SUBTRACT:
                delta = -1;  // fall through

            case VK_UP:
            case VK_ADD:
                lpDTKeystroke->st.wDay += (WORD) delta;
                break;
        }
    }
}

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

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

日期和時間選擇器