void CtestDlg::Load_C()
{
// выводим список файлов и каталогов с диска **С**
LVITEM lv;
BissnesLogical BS;
int ii =0;
BS.Load(ToString(GlobalPath));
list<MY_WIN32_FIND_DATA> paslist;
paslist = SetInfoList();
// список структур по сути WIN32_FIND_DATA который содержит информацию о открытом каталоге
list <MY_WIN32_FIND_DATA> ::iterator PassageList = paslist.begin();
while (PassageList != paslist.end())
{
// заполнение первой колонки
m_list.InsertItem(ii,PassageList->cFileName,0);
lv.mask = LVIF_TEXT;
lv.iSubItem = 0;
lv.iItem = ii;
// заполнение первой(имя) колонки
lv.pszText = PassageList->cFileName;// вывожу имя
//файла(каталога)
m_list.SetItem(&lv);
// заполнение второй(тип) колонки
lv.iSubItem = 1;
// а вот тут надо вывести вместо того что написано к примеру тип
//FILETIME(когда создали файл)
lv.pszText = PassageList->...........;
m_list.SetItem(&lv);
// заполнение третьей(дата) колонки
lv.iSubItem = 2;
// а вот тут надо вывести вместо того что написано к примеру тип
//FILETIME(когда изменялся посл.раз файл)
lv.pszText = PassageList->..........;
m_list.SetItem(&lv);
// заполнение четвёртой(размер) колонки
lv.iSubItem = 3;
// ну а тут размер
lv.pszText = PassageList->.......;
m_list.SetItem(&lv);
ii++;
PassageList++;
}
КАК ВЫВЕСТИ В LISTControl РАЗНЫЕ ТИПЫ TCHAR,TIME,INT
вот есть ListControl
вот код как мне вывести разные параметры в одну строку но разные столбцы??
Код:
Господа не подскажете как это сделать??
Код:
typedef struct _WIN32_FIND_DATA { // wfd
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
соответсвенно
PassageList->ftCreationTime;
Цитата: oxotnik333
соответсвенно
PassageList->ftCreationTime;
lv.pszText это TCHAR а ftCreationTime это FILETIME как компилятору понимать что выводить?? может структуру lv как то можно менять??
Цитата: metal_anton
lv.pszText это TCHAR а ftCreationTime это FILETIME как компилятору понимать что выводить?? может структуру lv как то можно менять??
Код:
typedef struct STRUCT tagFILETIME
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
соответственно надо обратиться к полю стрктуры PassageList->ftCreationTime.dwLowDateTime
и см. ф-ции конвертирования времени в строку
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
Цитата: oxotnik333
соответственно надо обратиться к полю стрктуры PassageList->ftCreationTime.dwLowDateTime
и см. ф-ции конвертирования времени в строку
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
посмотрим поисчим пасиба и так же значения типа int переводить?
Цитата: oxotnik333
Код:
typedef struct STRUCT tagFILETIME
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
соответственно надо обратиться к полю стрктуры PassageList->ftCreationTime.dwLowDateTime
и см. ф-ции конвертирования времени в строку
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
чавое то не получается можно примерчик небольшой???
SYSTEMTIME time;
FILETIME filetime;
CHAR string[...];
FileTimeToSystemTime(&filetime,&time);
wsprintf(string,"%04d.%02d.%02dT%02d:%02d:%02d",time.wYear,time.wMonth,time.wDay,time.wHour,time.wMinute,time.wSecond);
Ну а int типа так же:
wsprintf(string,"%d",i);
и string используеш :)