日付と時刻の選択通知を処理する方法
このセクションでは、日付と時刻の選択通知を処理する方法について説明します。
知っておくべきこと
テクノロジ
前提条件
- 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;
}
関連トピック