Datum auslesen



  • Hallo zusammen,

    ich würde gern aus dem Monatskalender im Visual C++ .NET das jeweils von mir angeklickte Datum in eine Textboxt auslesen lassen.

    Ich habe in der Hilfe und im Forum ausgiebig danach gesucht, und bin auf diesen Thread gestossen
    http://www.c-plusplus.net/forum/viewtopic.php?t=70188&highlight=kalender.

    Meine Frage wäre nun, ob ich mich auf dem richtigen Weg befinde? Und falls ja, wie ich das Datum in die Textbox bekomme?

    Danke schon mal!

    Grüßle



  • So ich habe nun diverse Sachen aus dem Forum und der Hilfe versucht und bin letzt endlich hier stehen geblieben! Da er mir die u.g. Fehlermeldung bringt und ich keine Ahnung hab ob das was ich mache auch wirklich richtig ist, dachte ich mir, ich poste noch mal rein!

    Was stimmt denn nicht? 😞

    void CDllAufrufenDlg::OnMcnSelchangeMonthcalendar1(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	LPNMSELCHANGE pSelChange = reinterpret_cast<LPNMSELCHANGE>(pNMHDR);
    	// TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
    	*pResult = 0;
    
    	CMonthCalCtrl MCkalender;
    	CTime time;
    
    	MCkalender.GetToday(time);
    	time.GetDay();
    	time.GetMonth();
    	time.GetYear();
    
    	SetDlgItemText(IDC_EDIT1, time); /// Hier soll der Fehler sein
    }
    

    Hier die Fehlermeldung

    error C2664: 'CWnd::SetDlgItemInt': Konvertierung des Parameters 2 von 'ATL::CTime' in 'UINT' nicht möglich
    

    Gruß Elle



  • Servus,

    du solltest dir eine Membervariable von deinem Calender anlegen oder dir das Control holen. Die MemberVar sollte vom Typ CMontthCal.... sein.

    Bsp.:

    CTime time;
    m_ctrCalendar.GetToday(time);
    
    SetDlgItemText(IDC_EDIT1, time.Format("%d.%m.%y"));
    

    Möchtest du die Zeit als Text ausgeben, solltest du vorher die Format Methode verwenden.

    *winke*
    Hellsgore



  • Hallo,

    der Fehler tritt jetzt nicht mehr auf!!! Danke!
    Klick ich aber auf einen Tag/Datum im Kalender, dann zeigt er mir nicht das ausgewählte Datum an, sondern immer den "01.01.70"!!! Das passiert egal wohin ich klicke!!!

    Liegt es vielleicht an der Funktion?

    void CDllAufrufenDlg::OnMcnSelchangeMonthcalendar1(NMHDR *pNMHDR, LRESULT *pResult)
    

    Werde mal ne andere Funktion ausprobieren! Danke schon mal!!

    Gruß Elle



  • Hallo,

    ich habe nun herausgefunden wie man das Datum in einer Form ausliest. Ich habe allerding ein Dialog! Ich poste trotzdem mal das der Form, vielleicht kann mir ja doch noch jemand helfen!!! 😞

    textBox1->Text = monthCalendar1->SelectionRange->Start.Date.ToShortDateString();
    

    Brauch dringend hilfe!!! Weiss bald nicht mehr was ich noch ausprobieren soll!!!!

    Gruß



  • Hab es auch hier herausgefunden! 🙂

    Hier die Lösung

    CTime zeit; 
    	CString datum; 
    	MCkalender.GetCurSel(ct);
    	datum.Format("%2d.%2d.%4d",zeit.GetDay(),zeit.GetMonth(),zeit.GetYear());
    	SetDlgItemText(IDC_datum, datum);
    

    Gruss Elle :xmas2:


Anmelden zum Antworten