Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tej sekcji przedstawiono sposób przetwarzania powiadomień selektora daty i godziny.
Co musisz wiedzieć
Technologie
Warunki wstępne
- C/C++
- Programowanie interfejsu użytkownika systemu Windows
Instrukcje
Kontrolka selektora daty i godziny (DTP) wysyła komunikaty powiadomień do okna nadrzędnego, gdy zdarzenia, zwykle wyzwalane przez dane wejściowe od użytkownika, występują w kontrolce. Aplikacja musi zawierać kod, aby określić typ wiadomości z powiadomieniem i odpowiednio odpowiedzieć.
Jeśli planujesz używać pól wywołania zwrotnego z kontrolkami DTP w aplikacji, należy przygotować się do obsługi DTN_FORMATQUERY, DTN_FORMATi DTN_WMKEYDOWN kodów powiadomień. Aby uzyskać dodatkowe informacje o polach wywołania zwrotnego, zobacz pola wywołania zwrotnego.
Poniższy przykład kodu C++ identyfikuje komunikat powiadomienia wysyłany przez kontrolkę DTP i wywołuje odpowiednią funkcję zdefiniowaną przez aplikację. Zapoznaj się z poniższymi tematami, aby zapoznać się z przykładami kodu, które ilustrują sposób przetwarzania powiadomień wyświetlanych w tym przykładzie.
| Tematy |
|---|
| Jak przetworzyć powiadomienie DTN_DATETIMECHANGE |
| Jak przetworzyć powiadomienie DTN_FORMATQUERY |
| Jak przetwarzać powiadomień DTN_FORMAT |
| Jak przetworzyć powiadomienie 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;
}
Tematy pokrewne