上一篇 | 下一篇

CListCtrl 使用演示的例子

发布: 2008-6-26 14:30 | 作者: admin | 来源: | 查看: 16次

void CLCDemoDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)

{

POS99vION pos = m_list.GetFirstSelectedItemPosition();

m_nIndex = m_list.GetNextSelectedItem(pos); // 得到项目索引

CEditDlg ed;

ed.m_strNo=m_list.GetItemText(m_nIndex,0);

ed.m_strName=m_list.GetItemText(m_nIndex,1);

ed.m_strScore=m_list.GetItemText(m_nIndex,2);

if(ed.DoModal()==IDOK)

{

m_list.SetItemText(m_nIndex,0,ed.m_strNo);

m_list.SetItemText(m_nIndex,1,ed.m_strName);

m_list.SetItemText(m_nIndex,2,ed.m_strScore);

}

*pResult = 0;

}

void CLCDemoDlg::OnButtonUp()

{

m_list.SetFocus();

if (m_nIndex == -1) //如果没有选择就返回

{

MessageBox("请选择一项再上移!","提示",MB_ICONINFORMATION);

return;

}

if (m_nIndex == 0) // 判断所选项是否位于行首

{

MessageBox("已经位于第一行!","提示",MB_ICONINFORMATION);

return;

}

// 提取所选列表项各列类容

CString str1, str2, str3;

str1 = m_list.GetItemText(m_nIndex, 0);

str2 = m_list.GetItemText(m_nIndex, 1);

str3 = m_list.GetItemText(m_nIndex, 2);

// 删除所选列表项

m_list.DeleteItem(m_nIndex);

// 在m_nIndex-1位置处插入上面所删列表项的各列类容

m_list.InsertItem(m_nIndex-1, str1);

m_list.SetItemText(m_nIndex-1, 1, str2);

m_list.SetItemText(m_nIndex-1, 2, str3);

m_nIndex--;

// 使得m_nIndex-1位置处项目高亮显示并获得焦点

UINT flag = LVIS_SELECTED|LVIS_FOCUSED;

m_list.SetItemState(m_nIndex, flag, flag);

}

void CLCDemoDlg::OnButtonDown()

{

m_list.SetFocus();

if (m_nIndex == -1) //如果没有选择就返回

{

MessageBox("请选择一项再下移!","提示",MB_ICONINFORMATION);

return;

}

if (m_nIndex == m_list.GetItemCount()-1) // 判断所选项是否位于行尾

{

MessageBox("已经位于最末行!","提示",MB_ICONINFORMATION);

return;

}

CString str1, str2, str3;

str1 = m_list.GetItemText(m_nIndex, 0);

str2 = m_list.GetItemText(m_nIndex, 1);

str3 = m_list.GetItemText(m_nIndex, 2);

m_list.DeleteItem(m_nIndex);

// 在m_nIndex+1位置处插入上面所删列表项的各列类容

m_list.InsertItem(m_nIndex+1, str1);

m_list.SetItemText(m_nIndex+1, 1, str2);

m_list.SetItemText(m_nIndex+1, 2, str3);

m_nIndex++;

// 使得m_nIndex+1位置处项目高亮显示并获得焦点

UINT flag = LVIS_SELECTED|LVIS_FOCUSED;

m_list.SetItemState(m_nIndex, flag, flag);

}

字号: | 推荐给好友

42/4<1234>

评分:0

我来说两句