MFC ListBox解决方案

MFC ListBox
[size=18px]这东西啊,选中容易,取消选中难!
今有控件如下:
CListBox* li
int cur_index=li->GetCurSel();
CString str;
li->GetText(cur_index,str);
//li->SetSel(cur_index,0);                 这种方法经证实是失败的
li->DeleteString(cur_index);
li->InsertString(cur_index,str);
[/size]

后来我想到,果断把该项删除,然后再插入,结果是正确的,但貌似有点点延迟啊。
还尝试了一种方法:li->SetCurSel(-1);结果也是失败的。


搞个控件不至于那么狼狈吧?
------解决思路----------------------
把焦点设置到其它控件上,然后刷新ListBox
------解决思路----------------------
CListBox::SetCurSel

int SetCurSel( int nSelect );

返回值:如果出错,则返回LB_ERR。

参数: nSelect 指定选择的字符串的基于零的索引。如果nSelect为-1,列表框设置为无选择。  

------解决思路----------------------
没明白你想怎样?
1、你程序片断中只定义了一个指针,没有创建对象应该执行不了。
2、选中设置用SetSel 函数很方便,估计对参数的理解有误。
CListBox::SetSel  
int SetSel( int nIndex, BOOL bSelect = TRUE );  
返回值 
如果出错,则为LB_ERR。 
参数 
nIndex   
包含设置的字符串的基于零的索引。如果为-1,选择从所有字符串添加或删除,取决于
bSelect 值。 
bSelect 指定如何设置选择。如果bSelect 为TRUE ,字符串被选择并高亮显示;如果为FALSE  ,
高亮显示被去掉且字符串不再被选择。缺省时,指定的字符串被选择并高亮显示。 
说明 
在多选列表框中选择一个字符串。只能对多选列表框使用此成员函数。