SetItemText有两种方式,一种是在插入行时候调用,一种是在插完行后调用
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
一:插入行时候调用
void CDYWorkingFilesManageDlg::ShowMachineFiles(const z_net_client_handle_t hNetClient) { int lengthOfWcs =0; int i=0; TCHAR szfilename[MAX_PATH]; TCHAR szFilesize[512]; TCHAR szFileTime[512]; z_dir_handle_t dir; if( zNAOpenDir( hNetClient, "nd:\\*", &dir ) >= 0 ) { z_file_entry_t ent; bool_t valid; ListView_DeleteAllItems(m_pListCtrlRemote->m_hWnd); while( true ) { if( zNAReadDir( hNetClient, dir, &ent, &valid ) < 0 ) { break; } if( valid ) { if ((0==strcmp(".",ent.fileName))||(0==strcmp("..",ent.fileName))) { continue; } lengthOfWcs=MultiByteToWideChar( CP_ACP, 0, ent.fileName, -1, NULL, 0 ); MultiByteToWideChar( CP_ACP, 0, ent.fileName, -1, szfilename, lengthOfWcs ); swprintf_s(szFilesize,_T("%d"),ent.fileSize); m_pListCtrlRemote->InsertItem(i,szfilename); m_pListCtrlRemote->SetItemText(0,1,szFilesize); i++; } else { break; } } zNACloseDir( hNetClient, dir ); } }
这种是插入时候调用,nItem必须为0,否则会出现这种情况,
二:插完行后调用
//after insertitem for (int k=0;k<3;k++) { m_pListCtrlRemote->SetItemText(k,1,szFilesize); }