Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das eingebettete Monatskalender-Steuerelement-Objekt kann vom CDateTimeCtrl-Objekt mit einem Aufruf der Memberfunktion GetMonthCalCtrl zugegriffen werden.
Hinweis |
|---|
Das eingebettete Monatskalender-Steuerelement wird nur verwendet, wenn das Steuerelement für die Datums- und Zeitauswahl DTS_UPDOWN nicht das Format aufweist. |
Dies ist hilfreich, wenn Sie bestimmte Attribute ändern möchten, bevor das eingebettete Steuerelement angezeigt wird.Um dies zu erreichen, bearbeiten Sie die DTN_DROPDOWN Benachrichtigung erhalten, das Monatskalender-Steuerelement (mithilfe CDateTimeCtrl::GetMonthCalCtrl) und machen die Änderungen.Leider ist das Monatskalender-Steuerelement nicht permanent.
Das heißt, wenn der Benutzer die Hilfe die Anzeige des Monatskalender-Steuerelements, ein neues Monatskalender-Steuerelement erstellt wird (vor der DTN_DROPDOWN Benachrichtigung).Das Steuerelement wird (nach der DTN_CLOSEUP Benachrichtigung vom Benutzer geschlossen) gelöscht.Dies bedeutet, dass alle Attribute, die Sie, bevor das eingebettete Steuerelement angezeigt wird, gehen verloren sich ändern, wenn das eingebettete Steuerelement geschlossen wird.
Das folgende Beispiel veranschaulicht diesen Vorgang unter Verwendung eines Handlers für die DTN_DROPDOWN Benachrichtigung.Die Codeänderungen die Hintergrundfarbe des Monatskalender-Steuerelements mit einem Aufruf von SetMonthCalColor, um grau.Der Code sieht folgendermaßen aus:
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;
}
Wie bereits erwähnt, sind alle Änderungen an den Eigenschaften des Monatskalender-Steuerelements mit zwei Ausnahmen verloren, wenn das eingebettete Steuerelement geschlossen wird.Die erste Ausnahme, die Farben des Monatskalender-Steuerelements sich bereits erläutert.Die zweite Ausnahme ist die Schriftart, die vom Monatskalender-Steuerelement verwendet wird.Sie können die Standardschriftart ändern, indem Sie einen Aufruf von CDateTimeCtrl::SetMonthCalFont ausführen und das Handle einer vorhandenen Schriftart übergeben.Im folgenden Beispiel werden (wobei das m_dtPicker Datum und Uhrzeit steuer Objekt ist), wird eine mögliche Methode:
//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);
Sobald die Schriftart mit einem Aufruf von CDateTimeCtrl::SetMonthCalFont, die neue Schriftart wird gespeichert und verwendet das nächste Mal geändert wurde, wenn ein Monatskalender angezeigt werden soll.
Hinweis