Windows Date Time Pickerでテキスト入力、コピペを可能にする
Visual C++ での話
Windowsアプリで日付・時刻を選択するためのコントロールDate Time Picker。一つの日付だけを選択するなら便利だが、複数のコントロール間でコピー&ペーストができないのが不便。
- リソースエディタでコントロールのAllow EditプロパティをONにする。
- コントロールにイベントハンドラを追加する。DTN_USERSTRINGメッセージに対するハンドラを追加する。
- ハンドラ内でテキスト形式の入力をSYSTEMTIME形式に変換する。
void CXXXXXXXXDialog::OnDtnUserstringDatetimepicker(NMHDR *pNMHDR, LRESULT *pResult) { LPNMDATETIMESTRING pDTString = reinterpret_cast(pNMHDR); // TODO: ここにコントロール通知ハンドラ コードを追加します。 COleDateTime dt; dt.ParseDateTime(pDTString->pszUserString, VAR_DATEVALUEONLY); dt.GetAsSystemTime(pDTString->st); *pResult = 0; }