关键点

 
在列表框生成后需要向其中加入或是删除行,可以利用:
int AddString( LPCTSTR lpszItem )添加行,
int DeleteString( UINT nIndex )删除指定行,
int InsertString( int nIndex, LPCTSTR lpszItem )将行插入到指定位置。
void ResetContent( )可以删除列表框中所有行。
通过调用int GetCount( )得到当前列表框中行的数量。
 
 
 

实现过程

属性设置
Sort:False
Selection:Multiple
 
//初始化部分代码
    //GetDlgItem(IDC_EDIT1)->SetFocus();//如果无效果,将edit的 ID Index(Ctrl+D)设置为1
//向列表框中插入文本,手动将默认的排序功能去掉sort
    m_ctrl_listbox1.AddString("A");
    m_ctrl_listbox1.AddString("BB");
    m_ctrl_listbox1.AddString("CCC");
    m_ctrl_listbox1.AddString("DDDD");
 
 
void CProject03Dlg::OnButton1()
{
    // TODO: Add your control notification handler code here
 
    //添加字符串到列表框1
    CString str;
    m_ctrl_edt1.GetWindowText(str);
    //添加的字符串不能为空
    UpdateData(FALSE);
 
    //如果nStartAfter为-1,从头查找整个列表框
//这里C++把a和A当成一样的字符了,如何让它区别大小写呢
    int nIndex =m_ctrl_listbox1.FindStringExact(-1,str);
    if ( nIndex != -1 )
    {
        MessageBox("项目已存在!");
        return;//Do Nothing
    }
 
    if ( !str.IsEmpty() )
    {
        //去掉最左端和最右端的空格
        str.TrimLeft();
        str.TrimRight();
        m_ctrl_listbox1.AddString(str);
        m_ctrl_edt1.SetWindowText("");
        m_ctrl_edt1.SetFocus();
    }
    else
    {
        MessageBox("字符不能为空!");
    }
}
 
 
 
void CProject03Dlg::OnButton2()
{
    //添加选中的项
 
    CString str;
    for (int i=0; i<m_ctrl_listbox1.GetCount(); i++)
    {
        if (m_ctrl_listbox1.GetSel(i))
        {
            m_ctrl_listbox1.GetText(i, str);           
            m_ctrl_listbox2.AddString(str);           
        // m_ctrl_listbox1.DeleteString(i);//添加并删除,最后一个没删除掉
        }
    }   
}    
 
void CProject03Dlg::OnButton3()
{
    //删除选中的项目
    for (int i=m_ctrl_listbox1.GetCount()-1; i>-1; i--)
    {
        if (m_ctrl_listbox1.GetSel(i))
        {
            m_ctrl_listbox1.DeleteString(i);
        }
    }   
}
 
void CProject03Dlg::OnButton5()
{
 
    //全部添加并清空已有的部分
    CString str;
    for (int i=0; i<m_ctrl_listbox1.GetCount(); i++)
    {
            m_ctrl_listbox1.GetText(i, str);           
            m_ctrl_listbox2.AddString(str);       
    }   
    m_ctrl_listbox1.ResetContent();   
}
 

备注

相关链接

 

附件列表

ListBox基础的更多相关文章

  1. 关于WPF你应该知道的2000件事

    原文 关于WPF你应该知道的2000件事 以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子. 帖子总数= 1,201 动画 #7 - 基于属性的动画 #686 - 使用动画制作图像脉 ...

  2. SilverLight:基础控件使用(2)-ComboBox,ListBox控件

    ylbtech-SilverLight-Basic-Control:基础控件使用(2)-ComboBox,ListBox控件 直接在 XAML 代码中设置 Items 和通过后台代码绑定数据源 Com ...

  3. C# 两个ListBox 数据互传-基础操作

    先看效果图: 两个服务设施列,左边:lbFacility1,右边:lbFacility2,中间向左向右箭头. 如果只是单纯的向左向右移动,那很简单. 因为项目遇到要获取选中项的ID,通过给ListBo ...

  4. Python3 tkinter基础 Listbox height 显示行数的上限

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Python3 tkinter基础 Listbox Scrollbar 创建垂直滚动条

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. Python3 tkinter基础 Listbox delete 删除单个、所有元素

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. Python3 tkinter基础 Listbox Button 点击按钮删除选中的单个元素

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  9. 2000条你应知的WPF小姿势 基础篇<22-27 WPF生命周期, 基础类等>

    端午长假在家陪着女朋友, 幸福感满满,生活对于一只饱经忧患的程序猿来说也是非常重要的,也就暂时没有更新博客.休假结束,回归奋斗的日子了,开始继续更新WPF系列. 在正文开始之前需要介绍一个人:Sean ...

随机推荐

  1. PHP正则匹配title标题文本

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  2. POJ 3422 Kaka's Matrix Travels(最小费用最大流)

    http://poj.org/problem?id=3422 题意 : 给你一个N*N的方格,每个格子有一个数字,让你从左上角开始走,只能往下往右走,走过的数字变为0,走K次,问最大能是多大,累加的. ...

  3. c++学习之旅-Cygwin+Eclipse ide for c++

    一,cygwin下载完毕后配置系统环境片两path指向cygwin/bin 二,eclipse设置 2.1 设置工作目录的cygwin映射 cygwin/d ->d:\ 2.2设置编译 下面新建 ...

  4. 李洪强iOS开发之-环信05_EaseUI 使用指南

    李洪强iOS开发之-环信05_EaseUI 使用指南 EaseUI 使用指南 简介 EaseUI 封装了 IM 功能常用的控件(如聊天会话.会话列表.联系人列表).旨在帮助开发者快速集成环信 SDK. ...

  5. 浅析Android的窗口

    一.窗口的概念 在开发过程中,我们经常会遇到,各种跟窗口相关的类,或者方法.但是,在 Android 的框架设计中,到底什么是窗口?窗口跟 Android Framework 中的 Window 类又 ...

  6. Server.MapPath()目录详解

    最近在做相关的开发,碰到了Server.MapPath(),顺便来温习一下 Server.MapPath()获取网站的目录详解  ./当前目录 /网站主目录 ../上层目录 ~/网站虚拟目录 如果当前 ...

  7. WCF - Hosting WCF Service

    After creating a WCF service, the next step is to host it so that the client applications can consum ...

  8. Emeditor所有快捷键操作

    新建文本    Ctrl+N         创建一个新的文本文件. 打开         Ctrl+O    打开一个已存在的文件. 保存         Ctrl+S     保存当前文件. 重新 ...

  9. .NET(C#)调用webService获取客户端IP地址所属区域(非异步)

    功能描述: 此接口用于获取客户端访问的IP的地址所属的区域(国家,城市等).通过输入IP地址查询国家.城市.所有者等信息.没有注明国家的为中国输入参数:IP地址(自动替换 " ." ...

  10. BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1084 给出一个n*m的矩阵,其中m<=2,取k个子矩阵,求最大子矩阵和. 分析 1.m= ...