現在選択されている時刻を日時指定コントロールから取得し、指定された SYSTEMTIME 構造体に格納します。
BOOL GetTime(
COleDateTime& timeDest
) const;
DWORD GetTime(
CTime& timeDest
) const;
DWORD GetTime(
LPSYSTEMTIME pTimeDest
) const;
パラメーター
timeDest
最初の形式では、システム時刻情報を受け取る COleDateTime オブジェクトへの参照。 2 番目の形式では、システム時刻情報を受け取る CTime オブジェクトへの参照。pTimeDest
システム時刻情報を受け取る SYSTEMTIME 構造体へのポインター。 NULL は使用できません。
戻り値
最初の形式では、COleDateTime オブジェクトへの時刻が正常に書き込まれると 0 以外を返します。それ以外の場合は 0 を返します。 2 番目と 3 番目の形式では、NMDATETIMECHANGE 構造体に設定されている dwFlag メンバーと等価な DWORD 値を返します。 詳細については、「解説」を参照してください。
解説
このメンバー関数は、Windows SDK に記述されている Win32 メッセージ DTM_GETSYSTEMTIME の動作を実装します。 MFC の実装では、時刻情報を格納するのに COleDateTime クラス、CTime クラス、または SYSTEMTIME 構造体を使用できます。
2 番目と 3 番目の形式の戻り値 DWORD は、日時指定コントロールのステータスが "日付なし" に設定されているかどうかを示します。この値は、NMDATETIMECHANGE 構造体のメンバー dwFlags の内容と等価です。 戻り値が GDT_NONE に等しい場合は、コントロールのステータスは "日付なし" であり、DTS_SHOWNONE スタイルが使用されます。 戻り値が GDT_VALID に等しい場合は、システム時刻が指定位置に正常に格納されています。
使用例
void CDateTimeDlg::OnBnClickedTimebutton()
{
// get as a CTime
CTime timeTime;
DWORD dwResult = m_DateTimeCtrl.GetTime(timeTime);
if (dwResult == GDT_VALID)
{
// the user checked the box and specified data
CString str;
// is it a time-only control, or a date-only control?
if ((m_DateTimeCtrl.GetStyle() & DTS_TIMEFORMAT) == DTS_TIMEFORMAT)
str = timeTime.Format(_T("%X"));
else
str = timeTime.Format(_T("%x"));
AfxMessageBox(str);
}
else
{
// the user unmarked the "none" box
AfxMessageBox(_T("Time not set!"));
}
// Calling as SYSTIME is much the same, but calling for a COleDateTime
// has us test the state of the COleDateTime object for validity to
// see if the user did or didn't check the "none" box.
}
必要条件
**ヘッダー:**afxdtctl.h