Das aktuelle Datum des Monatskalenders (CMonthCalCtrl) auslesen

MAN

Erfahrenes Mitglied
Hallo,

wie kann ich denn aus einem Monatskalender (Klasse: CMonthCalCtrl) das aktuelle Datum (am besten in Textform und evtl. im Format "dd.mm.yyyy") auslesen?

Ich finde einfach keine passende Methode dafür...

Oder ist schon allein die Klasse falsch, CMonthCalCtrl?


Bitte um HIlfe!


mfG

MAN
 
An das aktuelle Datum kommt du einfacher ran mit CTime::GetCurrentTime (). CTime hat auch eine Format()-Methode.
Oder meinst du den vom User ausgewählten Tag? Dazu gibt es GetSelRange() - ich habe es allerdings selbst noch nicht verwendet.
 
Ja,... ich meinte das Datum, was der User grad auf dem Kalender ausgewählt hatte.

Mit GetSelRange bekomme ich ja das MinDate und das MaxDate von mehreren ausgewählten Daten ("Datums") .

Wenn ich aber nur ein Datum abfragen will, und setze das Flag "Mehrfachauswahl" auf false, dann bringt er gleich n Fehler beim Aufruf der Methode GetSelRange (ist eigentlich auch verständlich). Wie kann ich jetzt nur das eine aktuell ausgewählte Datum abfragen?

mfG

MAN
 
Das weiss ich auch nicht, da ich damit noch nicht gearbeitet habe - ich habe lediglich das CDateTimeCtrl verwendet. Ich werde aber nachher mal ausprobieren, wie das geht. Vielleicht kann ich dir dann weiterhelfen.
 
Das wär nett, habe es nämlich selbst mal ausprobiert mit GetCurSel( CTime& refDateTime ), aber irgendetwas stimmt da noch nicht (gibt bei refDateTime->GetDay/Month/Year überall -1 zurück...).

Ebenso wieder vielen Dank für die Mühe! :)

mfG

MAN
 
STOPP :) :)

hab grad gemerkt, dass das control, was du immer benutzt (CDateTimeCtrl) meinen Anforderungen viel mehr entspricht :D
Also benutz ich das, und wie ich da das aktuelle Datum herausfind, is mir glaub ich klar: ich tippe mal GetWindowText :)

Vielen Dank nochmal!

mfG

MAN


<--- Close Section ---> :)
 
Genau das, nämlich GetCurSel(), habe ich gerade mit Erfolg ausprobiert und wundere mich darüber, dass ich es nicht vorher in der Doku gefunden habe. Bei mir ging das so:
Code:
  CTime sel;
  m_ctlCalendar.GetCurSel( sel );
  CString s1 = sel.Format( "%A, %B %d, %Y" );
  SetWindowText( s1 );
----
Da habe ich anscheinend zu langsam gepostet. Aber vielleicht findet sich ja noch jemand, der den Schnipsel gebrauchen kann. :)
 
Zuletzt bearbeitet:
Ok, danke!

jedoch benutze ich ja jetzt das CDataTimeCtrl und bei diesem habe ich nun ne andere Frage: ich kann doch das Flag "Nichts anzeigen" setzen. Wie überprüfe ich jetzt, ob der User da ein Hakerl gemacht hat, oder nicht?

mfG

MAN
 
Wenn kein Haken da ist, klappt GetTime() nicht und gibt GDT_NONE zurück. Das gilt jedenfalls für DWORD GetTime( CTime& timeDest ) const;.
 
Ok, funktioniert auch wieder wunderbar!

Wie kann ich jetzt aber das hakerl per code setzen, zum beispiel, wenn ich beim initialisieren der Form das hakerl raushaben will (also ich habe eine suche, wo ich zum start nicht nach datum suchen will) ?


mfG

MAN
 

Neue Beiträge

Zurück