Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Det här avsnittet visar hur du bearbetar meddelanden om datum- och tidsväljare.
Vad du behöver veta
Teknologier
Förutsättningar
- C/C++
- Programmering av Windows-användargränssnitt
Instruktioner
En DTP-kontroll (date and time picker) skickar meddelanden till det överordnade fönstret när händelser, som vanligtvis utlöses av indata från användaren, inträffar i kontrollen. Programmet måste innehålla kod för att fastställa typen av meddelande och svara på rätt sätt.
Om du planerar att använda återanropsfält med DTP-kontrollerna i ditt program måste du vara beredd att hantera DTN_FORMATQUERY, DTN_FORMAToch DTN_WMKEYDOWN notifieringskoder. För ytterligare information om återuppringningsfält, se återuppringningsfält.
Följande C++-kodexempel identifierar meddelandemeddelandet som skickas av en DTP-kontroll och anropar lämplig programdefinierad funktion. I följande avsnitt finns kodexempel som visar hur du bearbetar de meddelanden som visas i det här exemplet.
| Ämnen |
|---|
| Så här bearbetar du DTN_DATETIMECHANGE-anmälan |
| Så här bearbetar du DTN_FORMATQUERY-meddelandet |
| Så bearbetar du DTN_FORMAT-meddelandet |
| Så här gör du för att bearbeta DTN_WMKEYDOWN-meddelandet |
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;
}
Relaterade ämnen