Compartilhar via


Como processar notificações do seletor de data e hora

Esta seção demonstra como processar notificações do seletor de data e hora.

O que você precisa saber

Tecnologias

Pré-requisitos

  • C/C++
  • Programação da interface do usuário do Windows

Instruções

Um controle DTP (seletor de data e hora) envia mensagens de notificação para a janela pai quando eventos, geralmente acionados pela entrada do usuário, ocorrem no controle. Seu aplicativo deve incluir código para determinar o tipo de mensagem de notificação e responder adequadamente.

Se você planeja usar campos de retorno de chamada com os controles DTP em seu aplicativo, você deve estar preparado para lidar com códigos de notificação DTN_FORMATQUERY, DTN_FORMAT e DTN_WMKEYDOWN . Para obter informações adicionais sobre campos de retorno de chamada, consulte Campos de retorno de chamada.

O exemplo de código C++ a seguir identifica a mensagem de notificação enviada por um controle DTP e chama a função definida pelo aplicativo apropriada. Consulte os tópicos a seguir para obter exemplos de código que ilustram como processar as notificações que aparecem neste exemplo.

Tópicos
Como processar a notificação de DTN_DATETIMECHANGE
Como processar a notificação de DTN_FORMATQUERY
Como processar a notificação de DTN_FORMAT
Como processar a notificação de 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;
}

Notificações do seletor de data e hora

Referência de controle do seletor de data e hora

Usando controles do seletor de data e hora

Seletor de data e hora