Het gaat om dit ding:

Als de drop-down box van een date/time picker niet zichtbaar is, hoe kun je via een Windows API call dat ding dan toch zichtbaar maken? Als gebruiker kun je als je in de date/time picker staat gewoon op F4 drukken, maar ik kan geen manier vinden om het via code te doen. De volgende probeersels lijken geen resultaat te hebben.
Picker.Handle is de window handle van een date/time picker.
[edit]
DateTime_GetMonthCal(Picker.Handle) retourneert 0 (een ongeldige handle) als de drop-down box onzichtbaar is. Regel 14 in het tweede voorbeeld en regel 3 in het eerste voorbeeld zullen daardoor niet werken.
Als de drop-down box van een date/time picker niet zichtbaar is, hoe kun je via een Windows API call dat ding dan toch zichtbaar maken? Als gebruiker kun je als je in de date/time picker staat gewoon op F4 drukken, maar ik kan geen manier vinden om het via code te doen. De volgende probeersels lijken geen resultaat te hebben.
Picker.Handle is de window handle van een date/time picker.
Delphi:
1
2
3
| // twee probeersels: SendMessage(Picker.Handle, CB_SHOWDROPDOWN, 1, 0); SendMessage(DateTime_GetMonthCal(Picker.Handle), CB_SHOWDROPDOWN, 1, 0); |
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| const NMHdrDefaults: TNMHdr = (hwndFrom: 0; idFrom: 0; code: DTN_DROPDOWN); var NMHdr: TNMHdr; begin NMHdr := NMHdrDefaults; NMHdr.hwndFrom := Picker.Handle; // nog twee probeersels: SendMessage(Picker.Handle, WM_NOTIFY, 0, Integer(@NMHdr)); SendMessage(DateTime_GetMonthCal(Picker.Handle), WM_NOTIFY, 0, Integer(@NMHdr)); end; |
[edit]
DateTime_GetMonthCal(Picker.Handle) retourneert 0 (een ongeldige handle) als de drop-down box onzichtbaar is. Regel 14 in het tweede voorbeeld en regel 3 in het eerste voorbeeld zullen daardoor niet werken.
[ Voor 13% gewijzigd door Tomatoman op 06-06-2005 16:24 . Reden: aanvullende info ]
Een goede grap mag vrienden kosten.