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;
}