分类: C/C++
2008-12-05 16:18:50
在列表框类(CListBox)中有两个"长的有点相似的"成员函数,即InsertString(int nIndex,LPCTSTR lpsczItem)
与AddString(LPCTSTR lpsczItem),下面对这两个函数进行一下简单的个人分析:
这两个函数的返回类型都为int类型,都可被用来向列表中添加项目条.不同之出在于:
(1) InsertString 函数有两个参数,第一个参数为索引号,设定为-1时,项目条被插入到列表的末尾;
第二个参数与AddString 函数的唯一参数相同,为代表项目条中内容的字符串
(2) 使用InsertString ,第一个参数设定为-1时,列表中的项目条的排列顺序严格按照源代码中
语句的顺序排列;使用AddString时,列表中的项目条的顺序则按照英文字典序由上而下排列;
InsertString(第一个参数设定为-1)与AddString交叉使用时,各自保持原有的性质不变.
即InsertString(第一个参数设定为-1)设置的项目条之间的相对位置保持不变;AddString设置的
项目条之间的相对位置保持不变;但是,当两个函数设定的两种项目条之间的相对位置与具体源代码
中语句的实际位置有关.
当清除CListBox(m_list)里的所有内容时,粗心点的人会这样写
for (int i=0;i < m_list.GetCount();i++)
这样写的,没能实现预期效果,因为每执行一次m_list.DeleteString( i )时,m_list.GetCount()都是在变的(每次减1)。应该写成
int count = m_list.GetCount();
for (int i=0;i < count ;i++)
又或者更简单些:
while(m_list.GetCount())