Informationen zu Monatskalendersteuerelementen

Ein Monatskalendersteuerelement implementiert eine kalenderähnliche Benutzeroberfläche. Dies bietet dem Benutzer eine sehr intuitive und erkennbare Methode zur Eingabe oder Auswahl eines Datums. Das Steuerelement stellt der Anwendung außerdem die Möglichkeit zur Verfügung, die Datumsinformationen im Steuerelement mithilfe vorhandener Datentypen abzurufen und festzulegen.

Monatskalendersteuerungsfeatures

Der folgende Screenshot zeigt ein Monatskalendersteuerelement, das so dimensioniert wurde, dass es zwei Monate anzeigt.

Screenshot eines Dialogfelds mit einem Monatskalendersteuerelement, das zwei Monate nebeneinander anzeigt

Hinweis

Die Darstellung und das Verhalten des Monatskalendersteuerelements unterscheiden sich geringfügig unter den verschiedenen Versionen der Laufzeitbibliothek. Dieses Thema konzentriert sich auf das Steuerelement, wie es in Windows Vista mit Version 6 von Comctl32.dll angezeigt wird.

 

Das Steuerelement in der Abbildung verfügt über die folgenden optionalen Features.

  • Das aktuelle Datum wird in einer separaten Zeile am unteren Rand des Steuerelements angezeigt. Dies ist das Standardformat.
  • Der "heute Kreis" (eigentlich ein Rechteck in dieser Version) wird um den aktuellen Tag herum und neben der Zeile "Heute" als visueller Hinweis angezeigt. Dies ist das Standardformat.
  • Wochenzahlen werden links von jeder Tagezeile angezeigt. Dieser Stil muss angegeben werden.
  • Einige Datumsangaben werden entsprechend dem von der Anwendung festgelegten Tageszustand fett dargestellt. Beispielsweise können Datumsangaben mit geplanten Besprechungen fett dargestellt werden. Dieser Stil muss angegeben werden.

Hinweis

Windows unterstützt keine Datumsangaben vor 1601. Weitere Informationen finden Sie unter FILETIME .

Das Monatskalender-Steuerelement basiert auf dem gregorianischen Kalender, der 1753 eingeführt wurde. Es werden keine Daten berechnet, die mit dem julianischen Kalender übereinstimmen, der vor 1753 verwendet wurde.

 

Auswählen eines Tages

Wenn ein Benutzer oben links oder rechts im Monatskalendersteuerelement auf die Pfeilschaltflächen klickt, aktualisiert das Steuerelement seine Anzeige standardmäßig so, dass der vorherige oder nächste Monat angezeigt wird. Der Benutzer kann dieselbe Aktion auch ausführen, indem er auf die Teilmonate klickt, die vor dem ersten Monat und nach dem letzten Monat angezeigt werden.

Die folgenden Tastaturbefehle können auch verwendet werden, um die Auswahl zu verschieben. Der Kalender scrollt immer nach Bedarf, um den ausgewählten Tag anzuzeigen. (Die virtuellen Schlüsselcodes werden in der Tabelle angezeigt.)

Get-Help Beschreibung
Pfeil nach links (VK_LEFT) Wählen Sie den vorherigen Tag aus.
Pfeil nach rechts (VK_RIGHT) Wählen Sie den nächsten Tag aus.
Pfeil nach oben (VK_UP) Wählen Sie den gleichen Tag in der vorherigen Woche aus.
PFEIL NACH UNTEN (VK_DOWN) Wählen Sie den gleichen Tag in der nächsten Woche aus.
PAGE UP (VK_PRIOR) Wählen Sie den gleichen Tag im vorherigen Monat aus. (Wenn in diesem Monat der Tag nicht enthalten ist, wird der nächstgelegene Tag ausgewählt, z. B. wird die Auswahl vom 31. März auf den 28. oder 29. Februar verschoben.)
PAGE DOWN (VK_NEXT) Wählen Sie den gleichen Tag im nächsten Monat aus.
HOME (VK_HOME) Wählen Sie den ersten Tag des aktuellen Monats aus.
END (VK_END) Wählen Sie den letzten Tag des aktuellen Monats aus.
STRG+ HOME Scrollen Sie einen Monat nach hinten, und wählen Sie einen Tag in der linken Spalte aus.
STRG+ ENDE Scrollen Sie einen Monat nach vorne, und wählen Sie einen Tag in der spalte rechts aus.
STRG + SEITENAUF Wählen Sie den gleichen Tag in einem früheren Monat aus. Die Anzahl der Monate, um die die Auswahl verschoben wird, ist die Anzahl der Monate, die im Steuerelement angezeigt werden. Wenn beispielsweise zwei Monate angezeigt werden, wird die Auswahl vom 6. Juni auf den 6. Mai verschoben.
STRG + SEITE NACH UNTEN Wählen Sie den gleichen Tag in einem früheren Monat aus. Die Anzahl der Monate, um die die Auswahl verschoben wird, ist die Anzahl der Monate, die im Steuerelement angezeigt werden. Wenn beispielsweise zwei Monate angezeigt werden, wird die Auswahl vom 6. Juni auf den 6. August verschoben.

 

Wenn ein Monatskalendersteuerelement nicht das format MCS_NOTODAY verwendet, kann der Benutzer zum aktuellen Tag zurückkehren, indem er unten im Steuerelement auf den Text "Heute" klickt. Wenn der aktuelle Tag nicht sichtbar ist, aktualisiert das Steuerelement seine Anzeige, um es anzuzeigen.

Eine Anwendung kann die Anzahl der Monate ändern, in denen das Steuerelement seine Anzeige aktualisiert, indem sie die MCM_SETMONTHDELTA Nachricht oder das entsprechende Makro MonthCal_SetMonthDelta verwendet. Die Tasten PAGE UP und PAGE DOWN ändern jedoch den ausgewählten Monat um einen, unabhängig von der Anzahl der angezeigten Monate oder dem von MCM_SETMONTHDELTA festgelegten Wert.

Auswählen eines nicht zusammenhängenden Monats

Wenn ein Benutzer auf den Namen eines angezeigten Monats klickt, werden alle Monate im Jahr aufgelistet (in früheren Versionen ist dies ein Popupmenü). Der Benutzer kann einen Monat in der Liste auswählen. Wenn die Auswahl des Benutzers nicht sichtbar ist, scrollt das Monatskalendersteuerelement seine Anzeige, um den ausgewählten Monat anzuzeigen. Im folgenden Screenshot zeigt ein Monatskalendersteuerelement die Monate von zwei angrenzenden Jahren an.

Screenshot eines Dialogfelds mit einem Monatskalendersteuerelement, das alle Monate 2007 und 2008 anzeigt

Auswählen eines anderen Jahres

Wenn der Benutzer auf das Jahr klickt, wird eine Gruppe von Jahren aufgeführt, und der Benutzer kann eine andere auswählen, wie im folgenden Screenshot gezeigt.

Screenshot eines Monatskalendersteuerelements mit allen Jahren von 1999 bis 2020

Lokalisierung

Das Monatskalender-Steuerelement ruft sein Format und alle Zeichenfolgen aus LOCALE_USER_DEFAULT ab.

Zeiten im Monatskalendersteuerelement

Das Monatskalendersteuerelement zeigt die Uhrzeit nicht an. Die SYSTEMTIME-Struktur , die zum Festlegen und Abrufen des ausgewählten Datums oder des heutigen Datums verwendet wird, enthält jedoch Zeitfelder. Wenn ein Datum programmgesteuert festgelegt wird, kopiert das Steuerelement die Zeitfelder entweder so, wie sie sind, oder überprüft sie zuerst und speichert dann, wenn sie ungültig sind, die aktuellen Standardzeiten. Im Folgenden finden Sie eine Liste der Nachrichten, die ein Datum festlegen, und eine Beschreibung, wie die Zeitfelder behandelt werden.

`Message` BESCHREIBUNG
MCM_SETCURSEL Das Steuerelement kopiert die Zeitfelder ohne Überprüfung oder Änderung wie sie sind.
MCM_SETRANGE Die Zeitfelder der übergebenen Strukturen werden überprüft. Wenn sie gültig sind, werden die Zeitfelder ohne Änderung kopiert. Wenn sie ungültig sind, kopiert das Steuerelement die Zeitfelder aus den heutigen Daten.
MCM_SETSELRANGE Die Zeitfelder der übergebenen Strukturen werden überprüft. Wenn sie gültig sind, werden die Zeitfelder ohne Änderung kopiert. Wenn sie ungültig sind, behält das Steuerelement die Zeitfelder aus den aktuellen Auswahlbereichen bei.
MCM_SETTODAY Das Steuerelement kopiert die Zeitfelder ohne Überprüfung oder Änderung wie sie sind.

 

Wenn ein Datum aus dem Steuerelement abgerufen wird, werden die Zeitfelder ohne Änderung aus den gespeicherten Zeiten kopiert. Die Behandlung der Zeitfelder durch das Steuerelement wird dem Programmierer als Benutzerfreundlichkeit zur Verfügung gestellt. Das Steuerelement untersucht oder ändert die Zeitfelder nicht als Ergebnis eines anderen Vorgangs als die oben aufgeführten.