List ctrl 为什么插不进去数据呢?
我使用List ctrl 为什么老是添加不进去数据呢,下面是我的代码:
//---------------------------------------------------------------------------------------
LVCOLUMN listCol;
memset(&listCol, 0, sizeof(LVCOLUMN));
listCol.mask = LVCF_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);
//-------------------------------------------------------------------------------------
请指教!!~ (不使用MFC)
问题点数:30、回复次数:8Top
1 楼laiyiling(陌生人[MVP])回复于 2006-03-03 12:32:22 得分 0
设置为了report?Top
2 楼wfongcn(wf)回复于 2006-03-03 12:34:04 得分 0
是的!~Top
3 楼yameng(雅梦)回复于 2006-03-03 12:38:32 得分 0
SendMessage中使用的句柄是正确的吗?索引对不对?Top
4 楼wfongcn(wf)回复于 2006-03-03 12:42:40 得分 0
姓名,序号,已经添加到相关的item项,HANDLE没有问题。Top
5 楼newcore(to be or not to be, it's a question.)回复于 2006-03-03 12:52:03 得分 0
帮你顶一下
Top
6 楼wfongcn(wf)回复于 2006-03-03 12:59:15 得分 0
哥们,顶怎么可以,要解决问题啊!~5555~~~~Top
7 楼laiyiling(陌生人[MVP])回复于 2006-03-03 13:08:35 得分 30
下面是一个封装的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;
}
/////////////////////////////////////////////////////////////////////
Top
8 楼wfongcn(wf)回复于 2006-03-03 14:01:26 得分 0
太感谢了!~~是我把 LVIF_TEXT 写成了 LVCF_TEXT,我就日了,困扰了我3天啊!~~
Top




