CListBox一些用法

最近编程序需要用到listbox,感觉listbox还是比较简单的。有问题,去msdn。

1. listbox 有单选和多选两个模式。

    单选状态下,只能选择一个item,多选状态下,可以选择多个item。

2. list的每一个item有会有显示的text和与之关联的data。一个是字符串类型,一个是整型。

3. 如何实现listlox元素的上移和下移

    对于单选模式下,解决方案是 取得当前选中的元素的位置,上移的话,保存上一个元素的值,然后再将上一个元素的值重新插入。

    单选模式比较简单。代码就不给出了。

    多选模式下的上移,此时会上移所有被选中且可以上移的item。

     for (int i = 1; i < m_listbox.GetCount(); ++i )

    {

if (m_listbox.GetSel(i) && !m_listbox.GetSel(i-1))

{

long ident = m_listbox.GetItemData(i-1);

CString text;

m_listbox.GetText(i - 1, text);

m_listbox.DeleteString(i-1);

m_listbox.InsertString(i, text);

m_listbox.SetItemData(i, ident);

          }

    } 

     下移:

      for (int i = m_listbox.GetCount()-2; i >= 0; i-- )

{

if (m_listbox.GetSel(i) && !m_listbox.GetSel(i+1))

{

long ident = m_listbox.GetItemData(i+1);

CString text;

m_listbox.GetText(i, text);

m_listbox.DeleteString(i);

m_listbox.InsertString(i + 1, text);

m_listbox.SetItemData(i + 1, ident);

m_listbox.SetSel(i + 1);

                  }

         }

        这里面的小窍门就是从listbox的底部往上遍历。

        如果从上往下移的话,会一直不停的移直到最后,而不是只移动一位。

4. 全选和取消全选:

  // 全选

m_listbox.SelItemRange(TRUE, 0, m_listbox.GetCount()-1);

  //取消全选

   m_listbox.SelItemRange(FALSE, 0, m_listbox.GetCount()-1);   

转载于:https://www.cnblogs.com/freedesert/archive/2013/04/15/3021961.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值