Come elaborare le notifiche di selezione data e ora
Questa sezione illustra come elaborare le notifiche di selezione di data e ora.
Informazioni importanti
Tecnologie
Prerequisiti
- C/C++
- Programmazione dell'interfaccia utente di Windows
Istruzioni
Un controllo selezione data e ora (DTP) invia messaggi di notifica alla finestra padre quando gli eventi, in genere attivati dall'input dell'utente, si verificano nel controllo . L'applicazione deve includere il codice per determinare il tipo di messaggio di notifica e rispondere in modo appropriato.
Se si prevede di usare i campi di callback con i controlli DTP nell'applicazione, è necessario essere pronti a gestire DTN_FORMATQUERY, DTN_FORMAT e DTN_WMKEYDOWN codici di notifica. Per altre informazioni sui campi di callback, vedere Campi di callback.
L'esempio di codice C++ seguente identifica il messaggio di notifica inviato da un controllo DTP e chiama la funzione definita dall'applicazione appropriata. Fare riferimento agli argomenti seguenti per esempi di codice che illustrano come elaborare le notifiche visualizzate in questo esempio.
Argomenti |
---|
Come elaborare la notifica di DTN_DATETIMECHANGE |
Come elaborare la notifica di DTN_FORMATQUERY |
Come elaborare la notifica di DTN_FORMAT |
Come elaborare la notifica di 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;
}
Argomenti correlati