【MFC】两个ListBox控件数据交互

一.控件ID名称

        界面如图下所示:

        候选数据列表的ID为:

        已选数据列表的ID为:

二.数据添加

        可以使用以下代码往框中添加数据:

((CListBox *)GetDlgItem(IDC_LIST_TO_CHO))->AddString("测试数据");

        显示效果如下:

         如果有多个数据,可以使用以下方法:

char CHO_Data[5][20] = {"测试数据一","测试数据二","测试数据三","测试数据四","测试数据五"};

for (int i = 0; i < 5;i++)
    ((CListBox *)GetDlgItem(IDC_LIST_TO_CHO))->AddString(CHO_Data[i]);

        显示效果如下:

        如果想让数据按照自己的顺序排序,可以在控件处将自动排序关闭:

三.把候选列表中数据插入到已选列表中

        实现代码如下:

CString szStr;
int GetCulSel = ((CListBox *)GetDlgItem(IDC_LIST_TO_CHO))->GetCurSel(); //获取到"待选数据列表"中鼠标所选择的数据顺序

((CListBox *)GetDlgItem(IDC_LIST_TO_CHO))->GetText(GetCulSel,szStr); //获取到当前选择的文本内容

((CListBox *)GetDlgItem(IDC_LIST_TO_INSERT))->AddString(szStr); //将文本添加在"已选数据列表"中

        效果如下:

        可以看到“已选数据列表”中的数据是乱的,需要把该控件的自动排序也关掉:

        关闭后数据就会按照插入的顺序往下排列:

五.把已选数据列表中的数据删除

        代码实现如下:

int GetCulSel = ((CListBox *)GetDlgItem(IDC_LIST_TO_INSERT))->GetCurSel(); //获取"已选数据列表"中鼠标所选择的数据顺序

((CListBox *)GetDlgItem(IDC_LIST_TO_INSERT))->DeleteString(GetCulSel); //删除数据

        效果如下:

猜你喜欢

转载自blog.csdn.net/qq_41884002/article/details/129586454