Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CDateTimeCtrl как установить пустое значение


Автор: triclosan 18.12.2008, 16:42
Использую CDateTimeCtrl при получении даты для поиска по БД. Можно ли указать пустую или не валидную дату путем этого контрола (0000-00-00, -1 и т.п.) если юзер не хочет использовать дату при поиске. Единственно что приходит в голову - чекбокс "Искать по дате", но хотелось бы по красивше чего-то.

Автор: Earnest 18.12.2008, 17:37
Вообще-то правильнее сделать явную опцию "Искать по дате", чем выдумывать какие-то способы дать это понять по-другому. Зачем? Что в этом красивого? И что интуитивно понятного в пустой строке даты?

Автор: triclosan 18.12.2008, 17:59
Верно, но форма поиска небольшая - несколько полей плюс промежуток времени (два поля CDateTimeCtrl ). Получается для каждого надо сделать по рычагу.

Автор: Earnest 19.12.2008, 11:17
И что? Хочешь простую форму сложной для понимания сделать? 
Конечно, нужно для каждого поля по опци сделать - если их использование опционально.
Поверь, у пользователя есть куча своих проблем кроме как твои ребусы разгадывать.

Автор: triclosan 22.12.2008, 14:42
уговорила   smile 

Автор: dizzy1984 22.12.2008, 16:00
Почему бы для этого не использовать стиль "Show None" и для указания невалидной даты вызывать 
Код

DateTime_SetSystemtime( <тут HWND>, GDT_NONE, 0 );
?
Зачем создавать отдельный контрол, когда необходимый функционал уже написан в существующем...

Автор: Lunik 20.11.2010, 18:55
А у меня вот тоже такая проблема. А DTS_SHOWNONE работает только для WINDOWS VISTA  и последующих. Так как все-таки сделать пустое поле в CDateTimeCtrl ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)