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();   
}
 

 

 

   


 

备注

 

 

相关链接

                           

 

 




附件列表

     

    posted @ 2014-03-21 17:43  XE2011  阅读(227)  评论(0编辑  收藏  举报