列表框的多选范例-----如何选择多个ListBox

列表框的多选范例-----如何选择多个ListBox

功能介绍:多个ListBox表单,选择的时候,在右边的框中显示了相应的选择项。
核心代码:

初始化代码:
    
    
//  TODO: Add extra initialization here
    m_List.AddString( " 张三 " );
    m_List.AddString(
" 李四 " );
    m_List.AddString(
" 王五 " );

下面是响应的代码:

void  CTest19Dlg::OnSelchangeList2() //此处的代码就是相应的ListBox中一个选择项改变的消息响应函数
{
    
// TODO: Add your control notification handler code here
    int count;
    CString str,allstr;
    BOOL temp_count 
= FALSE;
    count 
= m_List.GetSelCount();
    
int *buffer = new int[count];
    m_List.GetSelItems(count,buffer); 
//将选择的项的索引放入到buffer数组中    
    for(int i = 0; i < count; i++){
        m_List.GetText(buffer[i],str); 
//得到指定索引的值,放入到str中
        if(FALSE == temp_count){
            allstr 
= str;
            allstr 
+= " ";
            temp_count 
= TRUE;
        }

        
else{
            allstr 
+= str;
            allstr 
+= " ";
        }

    }

    m_edit 
= allstr;
    UpdateData(FALSE);
    delete []buffer;
}

总结部分:
关键就是GetSelItems(count,buffer);  // 将选择的项的索引放入到buffer数组中
此句将对应的那些ListBox中的选择项的索引值放入到buffer数组中,是自动的哦。于是后面的操作就很简单了。
第二点就是,在选择listbox属性的时候,需要设置它为可以多选,这样才会有后面的。
而且从代码看到,我们编写的这个响应的函数,是这个控件对应的消息,于是每次一旦控件改变,就会相应的发生变化。

总结的部分突出:
1.API的使用。GetSelItems(count,buffer);前面那个是控件对应的函数。而count和buffer分别是大小和存放的指针。
2.操作,属性的选择很重要!

你可能感兴趣的:(列表框的多选范例-----如何选择多个ListBox)