Forum: PC-Programmierung CListCtrl und CDateTimerPicker


von Karlheinz Druschel (Gast)


Lesenswert?

Hi Leuts,

ich habe hier mal wieder zwei Problemchen die wahrscheinlich keine
sind:

Ich habe hier ein CListCtrl, in welches ich kontinuierlich Werte
eintrage. Jetzt soll natürlich immer der aktuiellste Wert, also der
zuletzt und am Ende eingetragen wurde, sofort sichtbar sein. Wie stelle
ich das an ?

Das zweite betrifft eine Timepicker: Ich möchte die Auswahl auf Stunden
& minuten beschränken, geht auch mit .SetFormat "hh:mm"); Aber sobal
ich das mache, ist automatisch das 12h-Format aktiv, ich will aber 24h.
Wie ändere ich das um ?

Greets
Karlheinz

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

1. Nach dem Einfügen des neuen Elements LVM_ENSUREVISIBLE an das Control
senden.

2. Das Format wird mit der Nachricht DTM_SETFORMAT gesetzt (was anderes
macht der C++-Wrapper SetFormat auch nicht). Der übergebene Formatstring
muss für Deinen Fall mit großem H geschrieben werden, dann gibt es auch
das 24-Stunden-Format:

 .SetFormat("HH.mm");

von Karlheinz Druschel (Gast)


Lesenswert?

1000 Dank, im Prinzip funktioniert das mit dem Zeitformat.
Aber wenn ich nun die Funktion GetTime() des Controls aufrufe, dann
stimmt die Minutenangabe nicht. Wenn ich Standardformat belaase klappt
das aber.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Welche Variante von GetTime() verwendest Du denn?
Und was exakt heisst "Minutenangabe stimmt nicht"?

(Quelltext, Beispielwerte?)

von Karlheinz Druschel (Gast)


Lesenswert?

COleDateTim t1 = p->GetTime ();
UINT m = t1.GetMinute();
UINT h = t1.GetHour();

h enthält nun die eingestellten Stunden, aber m enthält beispielsweise
eine 8, obwohl hh:22 eingestellt wurde.
Wenn ich die Funktion p->SetFormat("HH:MM") NICHt aufrufe bei der
Initialisierung, dann enthält m die eingestellte 22.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Problem liegt am eigenartigen Formatstring, den Du verwendest.

"MM" bedeutet die Nummer des Monats mit führenden Nullen.

Wenn Du statt dessen Minuten haben wolltest, müsstest Du, wie gestern
bereits von mir beschrieben, "mm" verwenden.

Sieh Dir mal die Dokumentation des Formatstrings für SetFormat an:
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/datetime/datetime.asp#dtp_format_chars

von Karlheinz Druschel (Gast)


Lesenswert?

hm, das mit dem Monat wäre natürlich eine Erklärung:-)
1000 Dank für den Link


Greets
Karlheinz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.