[Win32/C++] DateTimePicker

Pagina: 1
Acties:

  • Sebazztiaan
  • Registratie: Februari 2002
  • Laatst online: 20-08 12:22
Probleemstelling:
Ik heb 3 dialogs, nieuwklant, editklant en verwijderenklant. Als ik een nieuwe klant maak dan kan ik met een datumpicker de datum setten dat hij lid is geworden. Het is eigenlijk zo dat een klant bij lidmaatschap ook moet betalen, maar dat hoeft niet.

Dan open ik mijn edit dialog, en dan wil ik in de datetimepicker de datum setten waarop hij zich heeft aangemeld, (en dus ook betaald) niet de huidige systeem date, waarmee de DateTimePicker default gevuld wordt. Ik wil later wel de gegevens weer kunnen wijzigen met de DateTimePicker ander had ik er wel een editbox van gemaakt!

De volgende dingen werken dus niet, die heb ik al geprobeerd:
SetDlgItemText (met AllowEdit op true)
CB_SETCURSEL
CB_SETITEMSEL
CB_SELECTSTRING
CB_ADDSTRING(met de gedachte, als er 1 inzit, dan is hij er ook standaard uit te halen, met CB_SELECTSTRING)

Het vreemde is dat de date-time-picker per definitie een combobox is, met een speciale waarde, waarom kan ik er dan geen voorgedefinieerde waarde in zetten? Met een normale combobox kan dat namelijk wel (mits hij in de lijst van de combobox voorkomt) En het lijkt me vrij logisch dat mijn datum in de lijst voorkomt van de dateTimePicker!

Ik ben de hele SDK al door geweest, ook de nieuwste versie op internet weet niets, wie biedt uitkomst?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Waarom gebruik je ComboBox messages voor een DateTimePicker en niet de specifieke DTP messages die juist de date/time functionaliteit toevoegen? :?

Je zoekt dus DTM_SETSYSTEMTIME:
C:
1
2
3
4
5
lResult = SendMessage(         // returns LRESULT in lResult
     (HWND) hWndControl,       // handle to destination control
     (UINT) DTM_SETSYSTEMTIME, // message ID
     (WPARAM) wParam,          // = (WPARAM) (DWORD) flag;
     (LPARAM) lParam           // = (LPARAM) (LPSYSTEMTIME) lpSysTime; );   


flag
Value specifying the action that should be performed. This value must be set to one of the following:
GDT_VALID
Set the DTP control according to the data within the structure that lpSysTime points to.
GDT_NONE
Set the DTP control to "no date" and clear its check box. When this flag is specified, lpSysTime is ignored. This flag applies only to DTP controls that are set to the DTS_SHOWNONE style.

lpSysTime
Pointer to a SYSTEMTIME structure containing the system time used to set the DTP control.

Professionele website nodig?


  • Sebazztiaan
  • Registratie: Februari 2002
  • Laatst online: 20-08 12:22
Ja klopt het is gelukt, ik dacht namelijk dat dat niet wou omdat ik de members van SYSTEMTIME niet kon setten, maar dat wou wel, in ieder geval bedankt, maar ik was er zelf achter gekomen!