|
COleDateTime
#33699817
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
Visual C++ 6.0
Тема - установка значения в контроле типа Date Time Picker
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
В контрол IDC_DATETIMEPICKER1 на диалоговом окне
не могу при открытии диалогового окна
установить дату, допустим, 120 –
только 1601 и выше, например, 2006 –
9999 не.
Способ_1:Код находится в функции
“OnInitDialog()”.
COleDateTime m_date;
m_date_from.SetDate( 1752 , 6 , 24 ); // yyyy.mm.dd Если поставить меньше 1753, то в контроле IDC_DATETIMEPICKER1 будет выведена текущая дата, например 25.04.2006.
Если поставить больше 1752 ,
то это значение года и выводится.
Способ_2: - минимально устанавливаемый год 1601 .
Код прикреплён к командной кнопке.
CDateTimeCtrl* pCtrl = (CDateTimeCtrl*)
GetDlgItem(IDC_DATETIMEPICKER1);
COleDateTime dtMin;
COleDateTime dtMax;
dtMin.SetStatus(COleDateTime::null);
dtMax = COleDateTime( 1601 , 9 , 30 , 0 , 0 , 0 ); // 9 - номер месяца, 30 - число месяца
// 0, 0, 0 - часы / минуты / секунды + если меньше 1601,то
// выводится пусто в контроле IDC_DATETIMEPICKER1 - " . . " - точки-разделители
pCtrl->SetRange(&dtMin, &dtMax);
Если значение года в пределах 1601 – 2006 ,
То выводится указанное значение.
Если значение года больше 2006 ,
то выводится 2006 , т.е. текущее значение года.
PS: если использован первый способ, то при
Ипользовании 2 -го способа результат зависит от
Даты, установленной в первом способе.
Использованная “литература”: MSDN:
ShowRange(CDateTimeCtrl *pCtrl) – пример функции и её использование.
The COleDateTime class handles dates from 1 January 100 – 31 December 9999 .
СПАСИБО
|
|
|