Здравствуйте.Столкнулся с такой проблемой.С помощью "SysDateTimePick32" вывожу дату.С помощью (invoke SendDlgItemMessage,hWnd,1,WM_GETTEXT,50,ADDR BD где 1-"SysDateTimePick32" ) в BD получаю выведенную дату (пример:пятница 24 апреля 2009) и сохраняю.Как можно задать сохраненную в BD дату в "SysDateTimePick32" .С помощью invoke SendDlgItemMessage,hWnd,1,WM_SETTEXT,50,ADDR BD не получается. Подскажите пожалуйста кто знает.Спасибо.
Нормально никак. Парси дату сам, выставляй DTM_SETSYSTEMTIME, и если хочешь, получай дату через DTM_GETSYSTEMTIME и храни неотформатированной.
Гемора лучше побольше даже сделать, имхо, тогда его в результате меньше будет: хранить не SYSTEMTIME, а Unix-timestamp (количество секунд с полуночи 1 января 1970). Плюсы: одно поле в БД, которые нормальные СУБД ещё и форматировать умеют при выборке, нормальная арифметика, относительно лёгкое конвертирование (SYSTEMTIME -> FILETIME -> timestamp, пример есть в MSDN), форматирование и парсинг стандартной сишной библиотекой.
Наверное, очень извращение, но: если выставить LVITEM.pszText в LPSTR_TEXTCALLBACK, а в lParam запихать timestamp (см. выше), то очень даже можно сохранить (по LVN_GETDISPINFO отдавать форматированный текст). Иначе lParam считать указателем на динамически выделенный SYSTEMTIME и сделать пару костылей для добавления/удаления элементов. Ещё можно дату форматировать в легко парсибельный вид типа 2009-04-24 12:08:00 и хранить всё же строкой. Может, кто-нибудь попроще что-то предложит?.. А то у меня совсем огород %)