List ctrl 使用笔记

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;
}
/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值