clistctrl 删除多行后,排序问题!!例如,我有一个列表信息显示如下,序号 人名 国籍 工作类型 工资
1 张三 中国 会计 20000
2 小王 美国 化工 5000
3 大伟 中国 服装 10000
4 Tom 英国 机械 7000
5 李四 日本 金融 8000使用了下面一段程序后,假如我删除了第3和第5序号的信息,那么结果会变成序号 人名 国籍 工作类型 工资
1 张三 中国 会计 20000
2 小王 美国 化工 5000
4 Tom 英国 机械 7000
我现在要变成
序号 人名 国籍 工作类型 工资
1 张三 中国 会计 20000
2 小王 美国 化工 5000
3 Tom 英国 机械 7000
请注意顺序,不能是这样哦,一定要按照先后顺序排列。序号 人名 国籍 工作类型 工资
1 小王 美国 化工 5000
2 Tom 英国 机械 7000
3 张三 中国 会计 20000
或这样,都不行
序号 人名 国籍 工作类型 工资
1 小王 美国 化工 5000
2 张三 中国 会计 20000
3 Tom 英国 机械 7000我使用的程序是这样的,那么我该怎么实现才可以达到我的要求呢,请高手指点。POSITION pos = m_List.GetFirstSelectedItemPosition();
if (pos == NULL)
{
MessageBox(_T("请选择要删除的项!"), _T("提示"), MB_OK|MB_ICONINFORMATION);
return ;
}
while (pos)
{
int iIndex = m_List.GetNextSelectedItem(pos);
m_List.DeleteItem(iIndex);
pos = m_List.GetFirstSelectedItemPosition();
}
1 张三 中国 会计 20000
2 小王 美国 化工 5000
3 大伟 中国 服装 10000
4 Tom 英国 机械 7000
5 李四 日本 金融 8000使用了下面一段程序后,假如我删除了第3和第5序号的信息,那么结果会变成序号 人名 国籍 工作类型 工资
1 张三 中国 会计 20000
2 小王 美国 化工 5000
4 Tom 英国 机械 7000
我现在要变成
序号 人名 国籍 工作类型 工资
1 张三 中国 会计 20000
2 小王 美国 化工 5000
3 Tom 英国 机械 7000
请注意顺序,不能是这样哦,一定要按照先后顺序排列。序号 人名 国籍 工作类型 工资
1 小王 美国 化工 5000
2 Tom 英国 机械 7000
3 张三 中国 会计 20000
或这样,都不行
序号 人名 国籍 工作类型 工资
1 小王 美国 化工 5000
2 张三 中国 会计 20000
3 Tom 英国 机械 7000我使用的程序是这样的,那么我该怎么实现才可以达到我的要求呢,请高手指点。POSITION pos = m_List.GetFirstSelectedItemPosition();
if (pos == NULL)
{
MessageBox(_T("请选择要删除的项!"), _T("提示"), MB_OK|MB_ICONINFORMATION);
return ;
}
while (pos)
{
int iIndex = m_List.GetNextSelectedItem(pos);
m_List.DeleteItem(iIndex);
pos = m_List.GetFirstSelectedItemPosition();
}
解决方案 »
- 毛病是出在 new 和 delete 吗
- 请教一个单字节字符与双字节字符的问题
- Q: Free Heap Blocak *** after it was free
- 求OpenGL 1.4或者1.5,2.0版本的的gl.h, glu.h, opengl32.lib, glu32.lib文件,还有新版本的glext.h
- 老问题如何使用删除带有子目录的文件夹(子目录下有文件)
- 一个长久以来悬而未决的问题!!
- 如何解决stack overflow???
- 请问在VC++中对按钮的判断是怎么编程?高分送!!!
- VC++关于链接通不过,大家帮忙看看是什么问题
- 如何判断new的东西,有没有delete掉?
- 请教如何制作类似网银的密码输入框控件
- 求 Windows下,解压缩 *.Z 的方案
1 张三 中国 会计 20000
2 小王 美国 化工 5000
4 Tom 英国 机械 7000
我现在要变成
序号 人名 国籍 工作类型 工资
1 张三 中国 会计 20000
2 小王 美国 化工 5000
3 Tom 英国 机械 7000
你要变成的,怎么与原来的一样?
你排序的原则是什么?
{
for(int i=0;i<itemCount;i++)
//修改item 0列的值为i
}
具体代码应该很容易了吧
CString strNo;
//中间是删除代码省掉了
....
nItem =m_List.GetItemCount();
for (nLine = 0; nLine < nItem; nLine++ )
{
strNo.Format("%d",nLine+1);
m_List.SetItemText(nLine,0,strNo);
}
for(int i=0;i<m_List.GetItemCount();i++)
{
nb.Format(_T("%d"),i);
m_List.SetItemText(i,0,nb);
}