Cómo procesar notificaciones del selector de fecha y hora
En esta sección se muestra cómo procesar las notificaciones del selector de fecha y hora.
Lo que necesita saber
Tecnologías
Requisitos previos
- C/C++
- Programación de la interfaz de usuario de Windows
Instrucciones
Un control selector de fecha y hora (DTP) envía mensajes de notificación a la ventana primaria cuando los eventos, normalmente desencadenados por la entrada del usuario, se producen en el control . La aplicación debe incluir código para determinar el tipo de mensaje de notificación y responder adecuadamente.
Si tiene previsto usar campos de devolución de llamada con los controles DTP de la aplicación, debe estar preparado para controlar los códigos de notificación de DTN_FORMATQUERY, DTN_FORMAT y DTN_WMKEYDOWN . Para más información sobre los campos de devolución de llamada, consulte Campos de devolución de llamada.
El siguiente ejemplo de código de C++ identifica el mensaje de notificación enviado por un control DTP y llama a la función definida por la aplicación adecuada. Consulte los temas siguientes para ver ejemplos de código que muestran cómo procesar las notificaciones que aparecen en este ejemplo.
Temas |
---|
Cómo procesar la notificación de DTN_DATETIMECHANGE |
Cómo procesar la notificación de DTN_FORMATQUERY |
Cómo procesar la notificación de DTN_FORMAT |
Cómo procesar la notificación 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;
}
Temas relacionados