如何處理日期和時間選擇器通知
本節示範如何處理日期和時間選擇器通知。
您需要知道的事項
技術
必要條件
- C/C++
- Windows 使用者介面程序設計
指示
當事件通常是由使用者輸入觸發的事件時,日期和時間選擇器 (DTP) 控制項會將通知訊息傳送至父視窗。 您的應用程式必須包含程序代碼,才能判斷通知訊息的類型,並適當地回應。
如果您打算在應用程式中搭配 DTP 控制程式使用回呼欄位,您必須準備好處理 DTN_FORMATQUERY、 DTN_FORMAT和 DTN_WMKEYDOWN 通知碼。 如需回呼欄位的其他資訊,請參閱 回呼欄位。
下列 C++ 程式代碼範例會識別 DTP 控制項所傳送的通知訊息,並呼叫適當的應用程式定義函式。 如需程式代碼範例,請參閱下列主題,以說明如何處理此範例中顯示的通知。
主題 |
---|
如何處理DTN_DATETIMECHANGE通知 |
如何處理DTN_FORMATQUERY通知 |
如何處理DTN_FORMAT通知 |
如何處理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;
}
相關主題