00 List-View 插入列 新列請用SendMessage 第二攔ListView_SetItem

Post date: 2012/4/5 上午 02:49:09

程序代码:

typedef struct Packet

{

char userName[32];

char password[32];

char sexm[8];

}Datapack,DataS;

DataS f;

上面是结构体,用来存从数据库中提取出来的数据,验证过,取数据没有任何问题!只是将数据插入到列表框时如果3列都用SendMessage方法插入的话,只有第一列有数据,第二第三列都没有数据;lv.iSubItem = 0;

lv.pszText = f.userName

SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 1;

lv.pszText = f.password;

SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 2;

lv.pszText = f.sexm;

SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

像上面的插入方法,后面两列没数据!

而下面的插入方法,最后一列没有数据!

程序代码:

void ShowData(HWND hwnd,int i)//将数据导入列表框

{

HWND hwndList = GetDlgItem(hwnd,IDC_LISTINFO);

LVITEM lv;

lv.mask = LVIF_TEXT;

lv.iItem = i;

lv.iSubItem = 0;

lv.pszText = f.userName;

SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 1;

lv.pszText = f.password;

ListView_SetItem(hwndList,&lv);

lv.iSubItem = 2;

lv.pszText = f.sexm;

ListView_SetItem(hwndList,&lv);

SendMessage(hwndList,WM_SETREDRAW,TRUE,0);

UpdateWindow(hwndList);

这个是 第一列用SendMessage方法;第二,三列用ListView_SetItem方法,但是第三列没有数据!!

高手帮忙啊!!!困扰好久了!!!