谁有详细讲解CListCtrl的资料呀!!!!!

leech42 2002-02-26 02:10:31
help
...全文
45 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
use_id 2002-02-26
列表控件的操作(CListCtrl)


// 设置列表属性
// DWORD NewStyle = LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP
// |LVS_EX_CHECKBOXES|LVS_EX_ONECLICKACTIVATE;
DWORD NewStyle = LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT;
m_ctlListCtrl.SetExtendedStyle(NewStyle);

// 设置第三行为选定状态
m_ctlListCtrl.SetItemState(3,LVIS_SELECTED,LVIS_SELECTED);
// 设置第三行为非定状态
m_ctlListCtrl.SetItemState(3,0,LVIS_SELECTED);
// 查找哪一行为选定状态
int nItem = -1;
nItem = m_ctlListCtrl.GetItemNext(nItem,LVIS_SELECTED);
if(nItem==-1)
AfxMessageBox("没有选定的项");


// m_ctlListCtrl.SetItemState(3,LVIS_FOCUSED|LVIS_SELECTED, LVIS_SELECTED|LVIF_STATE);
m_ctlListCtrl.SetItem(1, 0, LVIF_STATE, 0, 0,
LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED, 0);
// m_ctlListCtrl.RedrawItems(0,m_ctlListCtrl.GetItemCount()-1);

// 设置属性
CListCtrl *pListCtrl;
pListCtrl = &m_ctlListCtrl;
::SendMessage(pListCtrl->m_hWnd,
LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);


// m_ctlListCtrl.SetCheck(1,FALSE);
m_ctlListCtrl.SetItemState(1,0,LVIS_SELECTED);

// 插入列
m_ctlList1.InsertColumn(0, "Column_1", LVCFMT_LEFT, 50);
m_ctlList1.InsertColumn(1, "Column_2", LVCFMT_LEFT, 50);
m_ctlList1.InsertColumn(2, "Column_3", LVCFMT_LEFT, 100);

// 如何删除CListCtrl中选定的项
POSITION pos;
int nIndex;

for(; pos= GetFirstSelectedItemPosition();)
{
nIndex = GetNextSelectedItem(pos);
DeleteItem(nIndex);
}

基本操作(LV_COLUMN)

LV_COLUMN lvColumn;
lvColumn.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
lvColumn.fmt=LVCFMT_LEFT;
lvColumn.cx=100;

lvColumn.iSubItem=0;
lvColumn.pszText="国籍";
m_ListCtrl.InsertColumn(0,&lvColumn);
lvColumn.iSubItem=1;
lvColumn.pszText="人口(百万)";
m_ListCtrl.InsertColumn(1,&lvColumn);

int i;
i=m_ListCtrl.InsertItem(0,"中国");
m_ListCtrl.SetItemText(i,1,"1,200");

i=m_ListCtrl.InsertItem(1,"美国");
m_ListCtrl.SetItemText(i,1,"300");

/////////////////////////////////////////////////////////////
for(int i=0;i<m_ListCtrl.GetItemCount();i++){
if(m_ListCtrl.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
{
m_Edit+=m_ListCtrl.GetItemText(i,0);
m_Edit+=" ";
m_Edit+=m_ListCtrl.GetItemText(i,1);
m_Edit+=".";
}
}

加载小图片

CImageList m_imgList;

void CMy011017D00Dlg::Init()
{
DWORD NewStyle = LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES;
m_ctlTestLt.SetExtendedStyle(NewStyle);

m_imgList.Create(IDB_ADMINISTRATOR_BMP,10, 60, (COLORREF)-1 );
m_ctlTestLt.SetImageList(&m_imgList,LVSIL_SMALL);

m_ctlTestLt.InsertColumn(1,_T(" Online list "),LVCFMT_LEFT,100,-1);

LVITEM li;

li.mask = LVIF_IMAGE|LVIF_TEXT;
li.iItem = 0;
li.iSubItem = 0; // 在第一列上显示图 li.iSubItem = 1; 在第二列上显示图
li.iImage = 0;
li.pszText = _T(" Administrator");

m_ctlTestLt.InsertItem(0,"");
m_ctlTestLt.SetItem( &li);

for(int i=0;i<30;i++)
{
li.iItem = i;
m_ctlTestLt.InsertItem(i,"");
m_ctlTestLt.SetItem( &li);
}
}

还要多就找MSDN吧。
回复
发帖
非技术类
创建于2007-09-28

1621

社区成员

VC/MFC 非技术类
申请成为版主
帖子事件
创建了帖子
2002-02-26 02:10
社区公告
暂无公告