LVCOLUMN listCol;
memset(&listCol, 0, sizeof(LVCOLUMN));
listCol.mask = LVIF_TEXT|LVCF_WIDTH|LVCF_SUBITEM;
listCol.cx = 0x75;
listCol.pszText = "序号";
SendMessage( GetDlgItem (hDlg,IDC_LISTVIEW) ,LVM_INSERTCOLUMN,0,(LPARAM)&listCol); //Insert/Show the coloum
listCol.cx = 0x60;
listCol.pszText="姓名"; // Next coloum
SendMessage(GetDlgItem (hDlg,IDC_LISTVIEW),LVM_INSERTCOLUMN,1,(LPARAM)&listCol); // ...
LVITEM lvItem;
memset(&lvItem, 0, sizeof(LVITEM));
lvItem.iItem = 1;
lvItem.iSubItem = 1;
lvItem.cchTextMax = 256;
lvItem.pszText = "数据1";
SendMessage(GetDlgItem (hDlg,IDC_LISTVIEW),LVM_INSERTITEM,lvItem.iItem,(LPARAM)&lvItem);
[转]下面是一个封装的API控件的CPP代码,仔细看看
/
// Listview_Control (2004.6.24) [By ZhangLu]
/
#include"zListview.h"
/
zListview::zListview()
{
memset(this,0,sizeof(zListview));
InitCommonControls();
}
/
BOOL zListview::create(HINSTANCE hinst,HWND hpwnd,int x,int y,int w,int h)
{
itemlast=itemnum=colnum=0;
hwnd=CreateWindow(WC_LISTVIEW,"",WS_CHILD|WS_VISIBLE|WS_BORDER|
LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL,
x,y,w,h,hpwnd,0,hinst,0);
if(!hwnd) return FALSE;
SendMessage(hwnd,LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
return TRUE;
}
/
BOOL zListview::destroy()
{
BOOL r=DestroyWindow(hwnd);
hwnd=0;
return r;
}
/
void zListview::bind(HWND vhwnd)
{
itemlast=itemnum=colnum=0;
hwnd=vhwnd;
SendMessage(hwnd,LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
}
/
BOOL zListview::clearcol()
{
for(int i=colnum;i>0;i--,colnum--)
if(SendMessage(hwnd,LVM_DELETECOLUMN,0,0)==FALSE) return FALSE;
return TRUE;
}
/
BOOL zListview::getcol(char *name,int index)
{
LVCOLUMN lvc;
lvc.mask=LVCF_TEXT|LVCF_SUBITEM;
lvc.pszText=name;
lvc.cchTextMax=256;
lvc.iSubItem=index;
return SendMessage(hwnd,LVM_GETCOLUMN,index,(long)&lvc);
}
/
BOOL zListview::setcol(int index,char *name)
{
LVCOLUMN lvc;
SendMessage(hwnd,LVM_GETCOLUMN,index,(long)&lvc);
lvc.pszText=name;
return SendMessage(hwnd,LVM_SETCOLUMN,index,(long)&lvc);
}
/
BOOL zListview::addcol(char *name,int width,int index)
{
LVCOLUMN lvc;
lvc.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
lvc.fmt =LVCFMT_LEFT;
lvc.cx=width;
lvc.pszText =name;
lvc.iSubItem=(index==-1)?colnum:index;
colnum++;
return SendMessage(hwnd,LVM_INSERTCOLUMN,lvc.iSubItem,(long)&lvc)!=-1;
}
/
BOOL zListview::delcol(int index)
{
colnum--;
return SendMessage(hwnd,LVM_DELETECOLUMN,index,0);
}
/
int zListview::findcol(char *name)
{
char s[256];
for(int i=0;i<colnum;i++)
{
getcol(s,0);
if(!strcmp(name,s)) return i;
}
return -1;
}
/
void zListview::setcolwidth(int index,int width)
{
SendMessage(hwnd,LVM_SETCOLUMNWIDTH,index,MAKELPARAM(width,0));
}
/
void zListview::setautowidth()
{
for(int i=0;i<colnum;i++)
SendMessage(hwnd,LVM_SETCOLUMNWIDTH,i,MAKELPARAM(LVSCW_AUTOSIZE_USEHEADER,0));
}
/
BOOL zListview::clearitem()
{
itemnum=0;
return SendMessage(hwnd,LVM_DELETEALLITEMS,0,0);
}
/
BOOL zListview::getitem(char *name,int index,int subindex)
{
LVITEM lvi;
lvi.mask=LVIF_TEXT;
lvi.iItem=index;
lvi.iSubItem=subindex;
lvi.pszText=name;
return SendMessage(hwnd,LVM_GETITEM,0,(long)&lvi);
}
/
BOOL zListview::setitem(char *name,int subindex,int index)
{
LVITEM lvi;
lvi.mask=LVIF_TEXT;
lvi.iItem=(index==-1)?itemlast:index;
lvi.iSubItem=subindex;
lvi.pszText=name;
return SendMessage(hwnd,LVM_SETITEM,0,(long)&lvi);
}
/
BOOL zListview::additem(char *name,int index)
{
LVITEM lvi;
if(index==-1) index=itemnum;
itemlast=index;
itemnum++;
lvi.mask=LVIF_TEXT;
lvi.iItem=index;
lvi.iSubItem=0;
lvi.pszText=name;
return SendMessage(hwnd,LVM_INSERTITEM,0,(long)&lvi);
}
/
BOOL zListview::delitem(int index)
{
itemnum--;
return SendMessage(hwnd,LVM_DELETEITEM,index,0);
}
/
int zListview::finditem(char *name,int subindex)
{
LVFINDINFO lvf;
LVITEM lvi;
lvi.mask=LVIF_TEXT;
lvi.iItem=0;
lvi.iSubItem=subindex;
lvi.pszText=name;
lvf.flags=LVFI_PARAM;
lvf.lParam=(long)&lvi;
return SendMessage(hwnd,LVM_FINDITEM,-1,(long)&lvi);
}
/
BOOL zListview::issel(int index)
{
return SendMessage(hwnd,LVM_GETITEMSTATE,index,LVIS_SELECTED);
}
/
int zListview::getsel()
{
for(int i=0;i<itemnum;i++)
if(SendMessage(hwnd,LVM_GETITEMSTATE,i,LVIS_SELECTED))
return i;
return -1;
}
/
BOOL zListview::setsel(int index)
{
ListView_SetItemState(hwnd,index,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
return TRUE;
}
/