Date Time Picker



  • Ich möchte mit dem MFC Andwendungsassistenten(exe) bei Visual C++ 6
    ein dialogbasierendes Programm schreiben, welches das ActiveX
    Steuerelement Date Time Picker enthält. Ich möchte, dass das aktuelle
    Datum im Date Time Picker bei Programmaufruf steht und ich möchte, dass das
    Datum in einer Variablen gespeichert wird, damit ich es mit anderen
    Datumsangaben vergleichen kann. Mein Problem ist, dass immer das
    komplette Datum und die komplette Uhrzeit in diese Variable aufgenommen
    werden. Mich interessiert aber nur das Datum. Wenn das Datum bei 2
    Variablen gleich ist, aber die Uhrzeit unterschiedlich, so sind sie
    für mich trotzdem gleich, und dann soll etwas geschehen. Dann werden
    bestimmte Listeneinträge in einer Listbox angezeigt. Wie das mit der
    Listbox geht ist klar. Ich habe nur wahnsinnige Probleme mit den
    Datumsangaben. Bitte zeigt mir, wie ich das machen kann. Ich schaue
    jetzt schon ewig in der Hilfe rum, und komme nicht vorwärts, da ich
    nicht weiss, wie ich das Datum von der Uhrzeit abstrahieren kann.
    Auch beim Anlegen von Membervariablen beim Date Time Picker
    Steuerelement gab es Probleme bei mir. Soll ich die Wert, Value oder
    Control Wahl treffen?
    Vielen Dank im Voraus

    😕 Dirk



  • Hi!
    Füg die WM für ChangeDateTime ein und schreib folgendes rein:

    void CMyDialog::OnDatetimechange(NMHDR* pNMHDR,LRESULT* pResult)
    {
      CTime ct;
      int nVal = m_Month.Gettime(ct),
      if(nVal)
       AfxMessageBox("Kein Datum ausgewählt");
      else {
       m_strdate.Format("_T("%02d.02%d.02%d"),ctGetDay(),ct.GetMonth(),ct.getYear());
      UpdateData(FALSE);
      }
    *pResult = 0;
    }
    

    mfg *mike* 😃



  • Hi Mike,

    ich habe diesen Code eingefügt und es gab viele Fehlermeldungen. Ich vermute mal, dass m_Month und m_Strdate Member-Variablen des DateTimePickers sind.Und in der Variablen m_Strdate steht dann das Datum ohne die Zeit drin. Ist das richtig?
    Kannst du mir bitte deine Zeilen noch etwas genauer erläutern.

    Vielen Dank

    Dirk



  • Hi!
    m_month ist eine CDateTimeCtrl Vriable und m_strdate ist einfach eine CString. Du musst nur eine DTW_DATETIMECHANGE mit Hilfe des Klassenassis einfügen. Dann sollte eine Funktion Namens OnDatetimechange(NMHDR* pNMHDR,LRESULT* pResult)
    eingefügt werden und dort kannst dann alles reinschreiben.

    mfg *mike* 😃



  • Hi Mike,
    vielen Dank für deine Hilfe. Nun habe ich die Sache im Prinzip verstanden, denk ich. Ich werde sie nachher gleich ausprobieren. Du wandelst die Datumsvariable in eine CString Variable mit Hilfe der Methode Format um, und dann kann man mit dieser CString-Variablen weiterarbeiten um sie mit anderen zu vergleichen.



  • Hi Mike,

    vielen Dank für deine Hilfe. Das Problem ist nun gelöst. Bin nun schon fast fertig mit meinem Programm. Es wird ein Terminkalender.

    CU Dirk


Anmelden zum Antworten