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;
}
Tópicos relacionados