Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

ich benutze ein Steuerelement IDC_DATETIMEPICKER1 die ich mit Ctime deklariert habe ;)

Leider gib er mir beim Starten 1.1.1971 wie kann ich Ihn aktuelles Datum zuweisen mit


m_ctMonatBis.GetCurrentTime();
m_ctMonatBis.Format("%d.%m.%Y");
UpdateData(FALSE);

[/PHP]

Tut sich nichts ;(

  • Autor

Man kann das ganze auch als Control deklarieren und es nimmt automatisch die Aktuelle Datum.

Dazu habe ich aber noch eine Frage: wie kann ich jetzt die angaben begrenzen so machen das der Benutzer nur bis Heutige Datum auswählen kann so habe ich es versucht leider ohne Erfolg


void xyzDlg::OnDropdownDatetimepickerbis(NMHDR* pNMHDR, LRESULT* pResult)
{
const COleDateTime* pMinRange,* pMaxRange;
pMaxRange->GetCurrentTime();
m_cMonatBis.SetRange( pMinRange,pMaxRange);
*pResult = 0;
}
[/PHP]

Originally posted by 007ski

const COleDateTime* pMinRange,* pMaxRange;

Jetzt hast du zwei uninitialisierte Zeiger.

pMaxRange->GetCurrentTime();
Hier rufst du über einen Zeiger eine statische Methode auf, ignorierst aber den (entscheidenden) Rückgabewert. Wahrscheinlich möchtest du das COleDateTime-Objekt, auf das pMaxRange zeigt, auf die aktuelle Zeit setzen. Das geht aber so nicht, weil erstens pMaxRange auf gar kein Objekt zeigt (siehe oben) und zweitens GetCurrentTime statisch ist, also gar nicht auf *pMaxRange zugreift, selbst wenn das ein Objekt wäre.

m_cMonatBis.SetRange( pMinRange,pMaxRange);
Hier rufst du SetRange mit den (immer noch) uninitialisierten Zeigern auf. Das fliegt dir vermutlich um die Ohren.

Was du willst, sieht vermutlich so aus:

COleDateTime maxrange = COleDateTime::GetCurrentTime();
m_cMonatBis.SetRange( NULL, &maxrange );[/CODE]

In der MSDN Library steht bei CDateTimeCtrl::SetRange auch ein Beispiel. ;)

  • Autor

Und wie kann man wenn User „falsch“ anklickt es mit einem Message anzeigen ??

COleDateTime maxrange = COleDateTime::GetCurrentTime();
BOOL pruef = m_cMonatBis.SetRange( NULL, &maxrange );
if(pruef == 0)
{
AfxMessageBox("Sie versuchen grade in die Zukunft gehen \r\n und es ist verboten");
}
UpdateData(FALSE);
*pResult = 0;[/PHP]

Wenn SetRange ausgeführt wurde, kann der Benutzer nicht mehr "falsch klicken". Das Steuerelement sollte das nicht mehr zulassen.

Der Rückgabewert von SetRange stellt übrigens nicht das Ergebnis einer Gültigkeitsprüfung dar, sondern nur, ob das Einstellen der Grenzwerte geklappt hat. Das sollte man eigentlich auch nur einmal machen.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.