void CUserDlg::OnBnClickedButtonUp()
{
// TODO: 在此添加控件通知处理程序代码
int column = m_clistCtrlUser.GetHeaderCtrl()->GetItemCount();
OnCListCtrlUp(&m_clistCtrlUser, column);
}
/**************************************************************************
函数名称:CCommonFuntions::OnCListCtrlUp
描 述: 对CListCtrl记录的上移操作
输入参数:
*listCtrl 对某个CListCtrl对象进行上移操作的CListCtrl指针
nColumn CListCtrl对象列数目(不大于30列)
输出参数: 无
返 回: 无
**************************************************************************/
void CUserDlg::OnCListCtrlUp(CListCtrl *listCtrl, int nColumn)
{
listCtrl->SetFocus();
POSITION pos;
pos = listCtrl->GetFirstSelectedItemPosition();
// 得到项目索引
int index = listCtrl->GetNextSelectedItem(pos);
if (index == -1)
return;
// 判断所选项是否位于行首
if (index == 0)
{
AfxMessageBox(_T("已经位于第一行!"));
return;
}
// 提取所选列表项各列类容
CString tempField[30];
for (int i = 1; i <= nColumn; i++)
{
tempField[i] = listCtrl->GetItemText(index, i - 1);
}
// 删除所选列表项
listCtrl->DeleteItem(index);
// 在IndexInFieldList-1位置处插入上面所删列表项的各列类容
int tempItem;
tempItem = listCtrl->InsertItem(index - 1, tempField[1]);
for (int j = 1; j<nColumn; j++)
{
listCtrl->SetItemText(tempItem, j, tempField[j + 1]);
}
index--;
// 使得IndexInFieldList-1位置处项目高亮显示并获得焦点
UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
listCtrl->SetItemState(index, flag, flag);
}
void CUserDlg::OnBnClickedButtonDown()
{
// TODO: 在此添加控件通知处理程序代码
int column = m_clistCtrlUser.GetHeaderCtrl()->GetItemCount();
OnCListCtrlDown(&m_clistCtrlUser, column);
}
/**************************************************************************
函数名称:CCommonFuntions::OnCListCtrlDown
描 述: 对CListCtrl记录的下移操作
输入参数:
*listCtrl 对某个CListCtrl对象进行下移操作的CListCtrl指针
nColumn CListCtrl对象列数目(不大于30列)
输出参数: 无
返 回: 无
**************************************************************************/
void CUserDlg::OnCListCtrlDown(CListCtrl *listCtrl, int nColumn)
{
listCtrl->SetFocus();
POSITION pos;
pos = listCtrl->GetFirstSelectedItemPosition();
// 得到项目索引
int index = listCtrl->GetNextSelectedItem(pos);
if (index == -1)
return;
// 判断所选项是否位于最后一行
if (index == listCtrl->GetItemCount() - 1)
{
AfxMessageBox(_T("已经位于最后一行!"));
return;
}
// 提取所选列表项各列类容
CString tempField[30];
for (int i = 1; i <= nColumn; i++)
{
tempField[i] = listCtrl->GetItemText(index, i - 1);
}
// 删除所选列表项
listCtrl->DeleteItem(index);
// 在IndexInFieldList+1位置处插入上面所删列表项的各列类容
int tempItem;
tempItem = listCtrl->InsertItem(index + 1, tempField[1]);
for (int j = 1; j<nColumn; j++)
{
listCtrl->SetItemText(tempItem, j, tempField[j + 1]);
}
index++;
// 使得IndexInFieldList+1位置处项目高亮显示并获得焦点
UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
listCtrl->SetItemState(index, flag, flag);
}
{
// TODO: 在此添加控件通知处理程序代码
int column = m_clistCtrlUser.GetHeaderCtrl()->GetItemCount();
OnCListCtrlUp(&m_clistCtrlUser, column);
}
/**************************************************************************
函数名称:CCommonFuntions::OnCListCtrlUp
描 述: 对CListCtrl记录的上移操作
输入参数:
*listCtrl 对某个CListCtrl对象进行上移操作的CListCtrl指针
nColumn CListCtrl对象列数目(不大于30列)
输出参数: 无
返 回: 无
**************************************************************************/
void CUserDlg::OnCListCtrlUp(CListCtrl *listCtrl, int nColumn)
{
listCtrl->SetFocus();
POSITION pos;
pos = listCtrl->GetFirstSelectedItemPosition();
// 得到项目索引
int index = listCtrl->GetNextSelectedItem(pos);
if (index == -1)
return;
// 判断所选项是否位于行首
if (index == 0)
{
AfxMessageBox(_T("已经位于第一行!"));
return;
}
// 提取所选列表项各列类容
CString tempField[30];
for (int i = 1; i <= nColumn; i++)
{
tempField[i] = listCtrl->GetItemText(index, i - 1);
}
// 删除所选列表项
listCtrl->DeleteItem(index);
// 在IndexInFieldList-1位置处插入上面所删列表项的各列类容
int tempItem;
tempItem = listCtrl->InsertItem(index - 1, tempField[1]);
for (int j = 1; j<nColumn; j++)
{
listCtrl->SetItemText(tempItem, j, tempField[j + 1]);
}
index--;
// 使得IndexInFieldList-1位置处项目高亮显示并获得焦点
UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
listCtrl->SetItemState(index, flag, flag);
}
void CUserDlg::OnBnClickedButtonDown()
{
// TODO: 在此添加控件通知处理程序代码
int column = m_clistCtrlUser.GetHeaderCtrl()->GetItemCount();
OnCListCtrlDown(&m_clistCtrlUser, column);
}
/**************************************************************************
函数名称:CCommonFuntions::OnCListCtrlDown
描 述: 对CListCtrl记录的下移操作
输入参数:
*listCtrl 对某个CListCtrl对象进行下移操作的CListCtrl指针
nColumn CListCtrl对象列数目(不大于30列)
输出参数: 无
返 回: 无
**************************************************************************/
void CUserDlg::OnCListCtrlDown(CListCtrl *listCtrl, int nColumn)
{
listCtrl->SetFocus();
POSITION pos;
pos = listCtrl->GetFirstSelectedItemPosition();
// 得到项目索引
int index = listCtrl->GetNextSelectedItem(pos);
if (index == -1)
return;
// 判断所选项是否位于最后一行
if (index == listCtrl->GetItemCount() - 1)
{
AfxMessageBox(_T("已经位于最后一行!"));
return;
}
// 提取所选列表项各列类容
CString tempField[30];
for (int i = 1; i <= nColumn; i++)
{
tempField[i] = listCtrl->GetItemText(index, i - 1);
}
// 删除所选列表项
listCtrl->DeleteItem(index);
// 在IndexInFieldList+1位置处插入上面所删列表项的各列类容
int tempItem;
tempItem = listCtrl->InsertItem(index + 1, tempField[1]);
for (int j = 1; j<nColumn; j++)
{
listCtrl->SetItemText(tempItem, j, tempField[j + 1]);
}
index++;
// 使得IndexInFieldList+1位置处项目高亮显示并获得焦点
UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
listCtrl->SetItemState(index, flag, flag);
}