埋め込み月間予定表コントロールへのアクセス

埋め込み月間予定表コントロールのオブジェクトは呼び出しで CDateTimeCtrl のオブジェクトから GetMonthCalCtrl のメンバー関数にアクセスできます。

[!メモ]

埋め込み月間予定表コントロールは、日付と日時指定コントロールに設定される DTS_UPDOWN のフォームがない場合にのみ使用されます。

これは、埋め込みコントロールが表示される前に特定の属性を変更する場合に便利です。これを行うには、 DTN_DROPDOWN の通知を取得し、月間予定表コントロール ( CDateTimeCtrl::GetMonthCalCtrlを使用)、変更を処理します。ただし、月間予定表コントロールは、永続的ありません。

つまり、ユーザーの要求が月間予定表コントロールの表示、新しい月間予定表コントロールが作成されます ( DTN_DROPDOWN 通知の前に)。コントロール ( DTN_CLOSEUP 通知の後)、ユーザーによって閉じられていると、破棄されます。これは、埋め込みコントロールが閉じると埋め込みコントロールが表示される前に、その変更する属性ことを意味します。

次の例は DTN_DROPDOWN 通知のハンドラーを使用してこの手順を示します。コードはグレーに SetMonthCalColorに呼び出しで月間予定表コントロールの背景色を、変更します。コードは次のとおりです。:

void CMyDialog::OnDtnDropdownDatetimepicker1(NMHDR *pNMHDR, LRESULT *pResult)
{
   UNREFERENCED_PARAMETER(pNMHDR);

   //set the background color of the month to gray
   COLORREF clr= RGB(100, 100, 100);

   m_DateTimeCtrl.SetMonthCalColor(MCSC_MONTHBK, clr);

   *pResult = 0;
}

前に説明したように、月間予定表コントロールのプロパティに対するすべての変更は、 2 種類の例外を除き、埋め込みコントロールが閉じるとき、失われます。最初の例外、月間予定表コントロールの色は、既についてされています。2 番目の例外が月間予定表コントロールで使用するフォントです。既存のフォントのハンドルを渡す CDateTimeCtrl::SetMonthCalFontに呼び出しを作成して既定のフォントを変更できます。次の例では、 ( m_dtPicker が日付と時刻のコントロール オブジェクトである場合に)は、 1 とおりのメソッドです:


//create and initialize the font to be used
LOGFONT logFont = {0};
logFont.lfHeight = -12;
logFont.lfWeight = FW_NORMAL;
logFont.lfCharSet = DEFAULT_CHARSET;
 _tcscpy_s(logFont.lfFaceName, _countof(logFont.lfFaceName), 
           _T("Verdana"));

m_MonthCalFont.CreateFontIndirect(&logFont);
m_DateTimeCtrl.SetMonthCalFont(m_MonthCalFont);

月間予定表を表示するときにフォントが CDateTimeCtrl::SetMonthCalFontに呼び出しと、新しいフォントの格納および使用される変更した場合。

参照

関連項目

CDateTimeCtrl の使い方

概念

コントロール (MFC)