zoukankan      html  css  js  c++  java
  • ListBox基础

     

     

     

    关键点

     
    在列表框生成后需要向其中加入或是删除行,可以利用:
    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();   
    }
     

     

     

       


     

    备注

     

     

    相关链接

                               

     

     




    附件列表

    • 相关阅读:
      Docker windows下安装,入门及注意事项,并搭建包含Nodejs的webapp
      360浏览器table中的td为空时td边框不显示的解决方法
      关于发布webservice提示The test form is only available for requests from the local machine
      CRM相关SQl手记
      页面右下角弹出的消息提示框
      MS CRM2011 js常用总结
      MVC razor 使用服务器控件
      常用正则表达式
      CRM 2011 常用对象
      人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
    • 原文地址:https://www.cnblogs.com/xe2011/p/3616415.html
    Copyright © 2011-2022 走看看